MVC+Nhibernate+spring.net(二)

在上一篇文章中我们已经把数据查了出来,现在我们来完善一下:前台使用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"] ?? "10");
            int pageIndex = int.Parse(Request["page"] ?? "1");
            int total = 0;
            IList<Emp> r= bll.GetCustomersList(u=>true);
            //分页
            var tempdata = r.OrderBy(u => u.EmpId)
                .Skip(pageSize * (pageIndex - 1))
                .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

原文地址:https://www.cnblogs.com/pandorabox/p/10151522.html