在上一篇文章中我们已经把数据查了出来,现在我们来完善一下:前台使用easyui

首先我们将NHelper类完善一下

public class EmpDal
{
public IList<Emp> GetAll(Expression<Func<Emp,bool>> where)
{
try
{
//开启连接并且打开Isession
using(ISession session = Nhelper.SessionFactory.OpenSession())
{
return session.Query<Emp>().Select(x => new Emp()
{
EmpId=x.EmpId,
EmpName=x.EmpName,
EmpDate=x.EmpDate
}).Where(where).ToList();
}
}
catch (Exception ex)
{ throw ex;
}
}
public int Insert(Emp emp)
{
//创建session
using(ISession session = Nhelper.SessionFactory.OpenSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
int i=(int)session.Save(emp);
session.Flush();
transaction.Commit();
return i;
}
}
}
public void Update(Emp emp)
{
using(ISession session = Nhelper.SessionFactory.OpenSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
session.Update(emp);
session.Flush();
transaction.Commit();
}
}
}
public void Delete(int id)
{
using (ISession session = Nhelper.SessionFactory.OpenSession())
{
Emp emp = session.Get<Emp>(id);
session.Delete(emp);
session.Flush();
}
}
public Emp GetByID(int id)
{
using (ISession session =Nhelper.SessionFactory.OpenSession())
{
Emp emp = session.Get<Emp>(id);
return emp;
}
}
}

自己完善一下bll类

现在开始写控制层和ui层

这是现实层的后台代码

 public ActionResult GetData()
{
int pageSize = int.Parse(Request["rows"] ?? "");
int pageIndex = int.Parse(Request["page"] ?? "");
int total = ;
IList<Emp> r= bll.GetCustomersList(u=>true);
//分页
var tempdata = r.OrderBy(u => u.EmpId)
.Skip(pageSize * (pageIndex - ))
.Take(pageSize);
var data = new { total = tempdata.Count(), rows = tempdata.ToList() };
return Json(data, JsonRequestBehavior.AllowGet); }

删除的后台代码

public ActionResult Delete(string ids)
{
if (string.IsNullOrEmpty(ids))
{
return Content("请选中要删除的数据!");
}
//正常处理
string[] strIds = ids.Split(',');
List<int> idList = new List<int>();
//批量删除
foreach (var item in strIds)
{
bll.Delete(int.Parse(item));
idList.Add(int.Parse(item));
} return Content("ok");
}

添加的后台代码

public ActionResult Add(Emp emp)
{
bll.Insert(emp);
return View();
}

修改的后台代码

  public ActionResult Update(int id)
{
ViewData.Model= bll.GetById(id);
return View();
}
public ActionResult Update(Emp emp)
{
bll.Update(emp);
return Content("修改成功");
}

以上便是mvc——hibernate入门级别的增删查改了,因为这是一套从入门到开发出来一套完整的项目,前面会有些简单,明天开始搭建Spring.Net

MVC+Nhibernate+spring.net(二)的更多相关文章

  1. MVC+Nhibernate+spring.net(三)

    当前层次已经分好 分层架构 画的不是太好啊,后面我会上代码,大家先将就着看吧. 现在开始搭建spring 搭建spring首先引用类库文件: spring.AopSpring.Corespring.W ...

  2. MVC+Nhibernate+spring.net(一)

    所用数据库是我之前所写的Nhibernate入门篇的数据库https://www.cnblogs.com/pandorabox/p/PandoraBox.html 第一步:创建一个mvc项目 第二步: ...

  3. Spring MVC 学习笔记(二)

    6. 视图和视图解析器  ❤  Spring MVC如何解析视图                                  • 请求处理方法执行完成后,最终返回一个ModelAndView对象 ...

  4. [MVC] 深入浅出Spring MVC

    [MVC] 深入浅出Spring MVC 转:http://4925054.blog.51cto.com/4915054/1176855 Spring MVC主要包括以下要点: 1:由Dispatch ...

  5. ASP.NET MVC NHibernate 整合

    请注明转载地址:http://www.cnblogs.com/arhat 在整合这三个技术之前,首先得说明一下整合的步骤,俗话说汗要一口一口吃,事要一件一件做.同理这个三个技术也是.那么在整合之前,需 ...

  6. Asp.net MVC + EF + Spring.Net 项目实践(目录)

    用4篇博客来搭一个MVC的框架,可能对初学者会有一些帮助,大家共勉吧.我觉得对于中小型项目,这个框架可能还是有一定的用处的,希望能够帮助到一些人. Asp.net MVC + EF + Spring. ...

  7. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...

  8. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...

  9. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...

随机推荐

  1. python轻量级orm

    python下的orm使用SQLAlchemy比较多,用了一段时间感觉不顺手,主要问题是SQLAlchemy太重,所以自己写了一个orm,实现方式和netsharp类似,oql部分因为代码比较多,没有 ...

  2. 图解http学习笔记【一】

    不想单纯的把书里的知识点罗列一遍 这周,我们的安全代码终于改完了.我在微信上报了个叫 一修读书的课程,现在已经听了6天.感觉并不是很神奇,聊胜于无.倒是趁着当当搞活动买回来好几本书,其中就有这本图解h ...

  3. android windows的一些item属性

    <item name="android:windowFrame">@null</item> :Dialog的windowFrame框为无 <item ...

  4. DB2序列和主键自增长

    1.把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: create table customers(id int a ...

  5. mybatis学习 十一 缓存

    1. 应用程序和数据库交互的过程是一个相对比较耗时的过程2. 缓存存在的意义:让应用程序减少对数据库的访问,提升程序运行效率3. MyBatis 中默认 SqlSession 缓存(一级缓存)开启 同 ...

  6. input.text文件提示效果

    <div class="search"><input type="text" value="Seach Products" ...

  7. keras环境

    Windows 7 python3.6 在安装 Keras 之前, 需要确认自己已经安装好了 Numpy 和 Scipy. 安装个anaconda3就可以搞定 因为 Keras 是基于 Tensorf ...

  8. Laravel创建自定义 Artisan 控制台命令实例教程

    来源:http://laravelacademy.org/post/1374.html 1.入门 Laravel通过Artisan提供了强大的控制台命令来处理非浏览器业务逻辑.要查看Laravel中所 ...

  9. java socket之上传文件

    一.功能介绍 该功能主要实现,将客户端的:F:/work/socketSample/filetemp/client/test_client.txt上传到服务端F:/work/socketSample/ ...

  10. BEM思想之彻底弄清BEM语法

    BEM的意思就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种前端命名方法论.这种巧妙的命名方法让你的CSS类对其他开发者来说更加透明而且更有意义 ...