NHibernteASPNETMVCJQuery实现增删改查精_第1页
NHibernteASPNETMVCJQuery实现增删改查精_第2页
NHibernteASPNETMVCJQuery实现增删改查精_第3页
NHibernteASPNETMVCJQuery实现增删改查精_第4页
NHibernteASPNETMVCJQuery实现增删改查精_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 NHibernte+ASP.NET MVC+JQuery实现增删改查 时间:2012-04-20 15:45来源:未知 作者:admin 点击: 934次我要投稿 高质量的ASP.NET空间,完美支持1.0/2.0/3.5/4.0/MVC等 前言:本人自学NHibernate+ mvc+JQuery实现了一个简单的用户的增删改查的功能,现在做一 个小的整理,希望和我一样正在自学这几个技术的人能够共同参考,共同进步,下面我将分为好几步做为项目的讲解。也是为了我能够更加的熟悉项目的编写。 1. 第一步:建立数据库 (1 打开数据库SQL Server 2005,新建一个数据库NHi

2、bernate,然后再此数据库中新建一张表,起名为:Users,用来存放我们录入的数据,表的建立样式如下图所示: 2. 第二步:建立项目,映射数据库 (1 打开Visual Studio 2010集成开发环境,在Visual Studio 2010中建立一个ASP.MVC 2.0的项目,将会生成微软封装好的自带的MVC的整个架构文件,然后再整个项目下面新建一个类库COM.Entities,然后在这个类库下面新建一个User类,一个User.hbm.xml的XML文件用于映射表对应的类的表文件。然后再类和XML文件中使用NHibernate实现数据库的映射。 1 Users类的作用是定义数据库中

3、的字段属性,代码如下: /定义数据库中的字段属性 public class Users public virtual string LogonId get; set; public virtual string Name get; set; public virtual string Password get; set; public virtual string EmailAddress get; set; public virtual DateTime LastLogon get; set; 2 User.hbm.xml文件的作用是映射刚才定义的字段的属性,代码如下: xmlversion

4、=1.0encoding=utf-8 ? id class hibernate-mapping 注:解说这段代码的内容 1 这段代码就是使用NHibernate必须有的代码,定义了NHibernate的版本信息。 2 ,name定义了所要映射的类,table定义了要映射的数据库中的表,lazy定义了是否要延迟加载,如果是默认值的话lazy=”true”,是延迟加载,这样的话需要在定义的类字段中加入Virtual,而lazy=”true”则不用延迟加载,立即执行。并且类字段中可写可不写。 3 id 这段代码的作用是被映射的类必须定义对应数据库的表主键字段,name标识属性的名字,Type标识Hi

5、bernate类型的名字,column标识主键的名字,这三个属性都是可选的, 可选的generator子元素是一个Java类的名字,用来为该持久化类的实例生成唯一的标识,如果这个生成器实例需要某些配置值或者初始化参数,用param元素来传递。 class=”assigned”的意思就是让应用程序在save(之前为对象分配一个表示符,这是generator元素没有指定时的默认生成策略。 4 3. 第三步 MVC中建立项目,引入命名空间 (1 在MVC项目下面添加文件夹DLL,将我们需要的一些NHibernate的dll(文件类库添加到这里,供我们引用。如图所示: 4. 第四步 实现Model层的

6、逻辑 (1 然后操作MVC层的Model层实现的功能如下:先在Model层地下建立2个文件夹和一个类,在各个文件夹下面在建立自己的类,建立完成之后如图所示: 然后编程实现各个类中的功能,我们每个类的代码都说一遍。 1 操作接口类IUsers,在这里就需要引入命名空间using COM.Entities;,代码如下: publicinterface IUsers /定义接口类IUsers /获取所有的用户 List GetAll(; /更新用户 bool UpdateUser(Users u; /添加用户 bool AddUser(Users u; /删除用户 bool DelUser(User

7、s u; /使用唯一的标识查询实体集 / /标识 Users SelOne(string id; 2 接下去来在MockModel文件夹下面的UserServices类中实现IUsers接口类的方法,需要用到NHibernate,所以引入操作NHibernate的命名空间及代码: using NHibernate实现简单的增删改查.Models.Interfaces; using COM.Entities; using NHibernate.Cfg; using NHibernate; using System.Collections; / NHibernate操作数据库的地方 public

8、class UsersService:IUsers /获得所有的用户信息 public List GetAll( var cfg = new Configuration(; cfg.AddAssembly(COM.Entities; ISessionFactory factory = cfg.BuildSessionFactory(; ISession session = factory.OpenSession(; IList userList = session.CreateCriteria(typeof(Users.List(; List list = new List(; foreach

9、 (Users item in userList list.Add(item; return list; /更新用户 public bool UpdateUser(Users u var cfg = new Configuration(; cfg.AddAssembly(COM.Entities; ISessionFactory factory = cfg.BuildSessionFactory(; ISession session = factory.OpenSession(; Users eUsers = (Userssession.Load(typeof(Users, u.LogonId

10、; /使用事务来操作数据库 ITransaction transaction = session.BeginTransaction(; eUsers.Name = u.Name; eUsers.Password = u.Password; eUsers.EmailAddress = u.EmailAddress; eUsers.LastLogon = DateTime.Now; transaction.Commit(; session.Flush(; /清理缓存,执行SQL return false; /删除用户 public bool DelUser(Users u var cfg=new

11、Configuration(; cfg.AddAssembly(COM.Entities; /程序集的添加 ISessionFactory factory=cfg.BuildSessionFactory(; ISession session=factory.OpenSession(; ITransaction transaction=session.BeginTransaction(; session.Delete(u; transaction.Commit(; session.Flush(; return true; /添加用户 public bool AddUser(Users u try

12、 var cfg = new Configuration(; cfg.AddAssembly(COM.Entities; ISessionFactory factory = cfg.BuildSessionFactory(; ISession session = factory.OpenSession(; ITransaction transaction = session.BeginTransaction(; session.Save(u; transaction.Commit(; session.Close(; return true; catch return false; /使用唯一标

13、识查询实体 /标识ID / 返回Users实体 public Users SelOne(string id var cfg = new Configuration(; cfg.AddAssembly(COM.Entities; ISessionFactory factory = cfg.BuildSessionFactory(; ISession session = factory.OpenSession(; var u = (Userssession.Load(typeof(Users, id; / session.Load(根据指定的实体类或者ID从数据库中读取数据并返回与之对应的实体对象

14、 return u; 3 最后实现ServiceBuilder.cs类的方法使其能够返回UserService类的方法,引入命名空间和代码的编写如下: usingNHibernate实现简单的增删改查.Models.Interfaces; usingNHibernate实现简单的增删改查.Models.MockModels; publicsealed class ServiceBuilder /sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。 public static IUsers BuildUsersSe

15、rvice( return new UsersService(; 5. 第五步 实现MVC层的HomeController类 (1 接下来实现MVC三层架构中的Controler层的业务逻辑,在HomeControler类中引入命名空间和代码是: using NHibernate实现简单的增删改查.Models.Interfaces; using NHibernate实现简单的增删改查.Models; using COM. Entities; HandleError public class HomeController : Controller public ActionResult Ind

16、ex( IUsers iuser = ServiceBuilder.BuildUsersService(; ViewDataUsersInfor = iuser.GetAll(; return View(Index; public ActionResult OperationUser( String textId = Request.FormText_ID; String textUserName = Request.FormText_UserName; String textPassword=Request.FormText_Password; String emailAddress = R

17、equest.FormText_EmailAddress; DateTime lastLogon = DateTime.Now; string operationT = Request.FormoperationT; var u = new Users LogonId = textId, Name = textUserName, Password = textPassword, EmailAddress = emailAddress, LastLogon = lastLogon ; IUsers iuser = ServiceBuilder.BuildUsersService(; 2010年全

18、国高校市场营销大赛实施方案 为确保参加2010年全国高职高专市场营销案例大赛 ViewData 全国高校市场营销大赛是由中国市场学会、教育部考试中心、教育部高等学校高职高专工商管理类专业教学指导委员会面向全国高职院校工商管理类大学生联合主办的营销实践技能竞赛活动。 二、参赛目的 else ViewDataAddSuccess = No; if (operationT.Equals(长:郭荣森 成 员:陈舒平(指导老师)、; string strU = LogonId: + rU.LogonId + ,Name: + rU.Name + ,Password: + rU.Password + ,EmailAddress: 四、参赛具体工作安排 (一)学校预选赛日程安

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论