在上一篇文章中我们已经把数据查了出来,现在我们来完善一下:前台使用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. 《C#从现象到本质》读书笔记(一)第1章 .NET基础知识

    最近根据博客园大神的推荐,买了本<C#从现象到本质>.做一点读书笔记. 由于不懂IL和ildasm,winddg,太深奥,理解不了,就牛嚼草一样,先总结第一遍读书,自己总结的知识点了.不知 ...

  2. InputMethodManagerService处理输入法——监听APK变动

    android\frameworks\base\services\java\com\android\server\InputMethodManagerService.java public Input ...

  3. python上下文管理协议

    所谓上下文管理协议,就是咱们打开文件时常用的一种方法:with __enter__(self):当with开始运行的时候触发此方法的运行 __exit__(self, exc_type, exc_va ...

  4. 2018.11.06 NOIP训练 最大获利(profit)(01分数规划+最大权闭合子图)

    传送门 好题啊. ∑i<jpi,jK∗(200−K)>X\frac{\sum_{i<j}p_{i,j}}{K*(200-K)}>XK∗(200−K)∑i<j​pi,j​​ ...

  5. PARSEC安环境配置、运行

    1.getting started 2.run PARSEC on simulators Full-System Simulators: such as Simics, GEM5.Trace-Driv ...

  6. Matlab编辑器背景修改

    将下段代码如到C:\Users\Peng Chen\AppData\Roaming\MathWorks\MATLAB\R2016a\matlab.prf 先备份.prf,再替代之前的. #MATLAB ...

  7. i2c_client 几种实例化方法

    http://blog.csdn.net/lugandong/article/details/48092397

  8. Day1-Python基础--数据类型

    距离上次更新,已经一月有余.说明学习状态不好,且滞后严重.第二模块也滞后5周之多,可能学习方法不对,有点凌乱,导致写作业时思路还是打不开,再一个是练习的太少了吧,以后得多挤挤时间来了.目前到了这个年纪 ...

  9. 好文推荐系列---------(4)使用Yeoman自动构建Ember项目

    好文原文地址:http://segmentfault.com/a/1190000000368881 我决定学习前端开发的效率工具Yeoman.本文将首先介绍Yeoman的基本情况,接着我们会使用Yeo ...

  10. 1.2.1继承Thread类

    实现多线程的方法有2种:方法一是继承Thread,方法二是实现Runnerable接口 使用继承Thread类的方法创建多线程的时候,最大的局限性就是不支持多继承,因为java语言的特点就是单继承,因 ...