NHibernteASPNETMVCJQuery实现增删改查精.docx

上传人:b****5 文档编号:6007641 上传时间:2023-01-02 格式:DOCX 页数:10 大小:57.41KB
下载 相关 举报
NHibernteASPNETMVCJQuery实现增删改查精.docx_第1页
第1页 / 共10页
NHibernteASPNETMVCJQuery实现增删改查精.docx_第2页
第2页 / 共10页
NHibernteASPNETMVCJQuery实现增删改查精.docx_第3页
第3页 / 共10页
NHibernteASPNETMVCJQuery实现增删改查精.docx_第4页
第4页 / 共10页
NHibernteASPNETMVCJQuery实现增删改查精.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

NHibernteASPNETMVCJQuery实现增删改查精.docx

《NHibernteASPNETMVCJQuery实现增删改查精.docx》由会员分享,可在线阅读,更多相关《NHibernteASPNETMVCJQuery实现增删改查精.docx(10页珍藏版)》请在冰豆网上搜索。

NHibernteASPNETMVCJQuery实现增删改查精.docx

NHibernteASPNETMVCJQuery实现增删改查精

NHibernte+ASP.NETMVC+JQuery实现增删改查

时间:

2012-04-2015:

45来源:

未知作者:

admin点击:

934次我要投稿高质量的ASP.NET空间,完美支持1.0/2.0/3.5/4.0/MVC等

前言:

本人自学NHibernate+mvc+JQuery实现了一个简单的用户的增删改查的功能,现在做一个小的整理,希望和我一样正在自学这几个技术的人能够共同参考,共同进步,下面我将分为好几步做为项目的讲解。

也是为了我能够更加的熟悉项目的编写。

1.第一步:

建立数据库

(1打开数据库SQLServer2005,新建一个数据库NHibernate,然后再此数据库中新建一张表,起名为:

Users,用来存放我们录入的数据,表的建立样式如下图所示:

2.第二步:

建立项目,映射数据库

(1打开VisualStudio2010集成开发环境,在VisualStudio2010中建立一个ASP.MVC2.0的项目,将会生成微软封装好的自带的MVC的整个架构文件,然后再整个项目下面新建一个类库COM.Entities,然后在这个类库下面新建一个User类,一个User.hbm.xml的XML文件用于映射表对应的类的表文件。

然后再类和XML文件中使用NHibernate实现数据库的映射。

1Users类的作用是定义数据库中的字段属性,代码如下:

//定义数据库中的字段属性

publicclassUsers

{

publicvirtualstringLogonId{get;set;}

publicvirtualstringName{get;set;}

publicvirtualstringPassword{get;set;}

publicvirtualstringEmailAddress{get;set;}

publicvirtualDateTimeLastLogon{get;set;}

}

2User.hbm.xml文件的作用是映射刚才定义的字段的属性,代码如下:

xmlversion="1.0"encoding="utf-8"?

>

nhibernate-mapping-2.2">

id>

class>

hibernate-mapping>

注:

解说这段代码的内容

1

nhibernate-mapping-2.2">这段代码就是使用NHibernate必须有的代码,定义了NHibernate的版本信息。

2,name定义了所要映射的类,table定义了要映射的数据库中的表,lazy定义了是否要延迟加载,如果是默认值的话lazy=”true”,是延迟加载,这样的话需要在定义的类字段中加入Virtual,而lazy=”true”则不用延迟加载,立即执行。

并且类字段中可写可不写。

3

id>

这段代码的作用是被映射的类必须定义对应数据库的表主键字段,name标识属性的名字,Type标识Hibernate类型的名字,column标识主键的名字,这三个属性都是可选的,

可选的generator子元素是一个Java类的名字,用来为该持久化类的实例生成唯一的标识,如果这个生成器实例需要某些配置值或者初始化参数,用param元素来传递。

class=”assigned”的意思就是让应用程序在save(之前为对象分配一个表示符,这是generator元素没有指定时的默认生成策略。

4

3.第三步MVC中建立项目,引入命名空间

(1在MVC项目下面添加文件夹DLL,将我们需要的一些NHibernate的dll(文件类库添加到这里,供我们引用。

如图所示:

4.第四步实现Model层的逻辑

(1然后操作MVC层的Model层实现的功能如下:

先在Model层地下建立2个文件夹和一个类,在各个文件夹下面在建立自己的类,建立完成之后如图所示:

然后编程实现各个类中的功能,我们每个类的代码都说一遍。

1操作接口类IUsers,在这里就需要引入命名空间usingCOM.Entities;,代码如下:

publicinterfaceIUsers//定义接口类IUsers

{

///获取所有的用户

ListGetAll(;

///更新用户

boolUpdateUser(Usersu;

///添加用户

boolAddUser(Usersu;

///删除用户

boolDelUser(Usersu;

///使用唯一的标识查询实体集

///

///标识

UsersSelOne(stringid;

}

2接下去来在MockModel文件夹下面的UserServices类中实现IUsers接口类的方法,需要用到NHibernate,所以引入操作NHibernate的命名空间及代码:

usingNHibernate实现简单的增删改查.Models.Interfaces;

usingCOM.Entities;

usingNHibernate.Cfg;

usingNHibernate;

usingSystem.Collections;

//NHibernate操作数据库的地方

publicclassUsersService:

IUsers

{

//获得所有的用户信息

publicListGetAll(

{

varcfg=newConfiguration(;

cfg.AddAssembly("COM.Entities";

ISessionFactoryfactory=cfg.BuildSessionFactory(;

ISessionsession=factory.OpenSession(;

IListuserList=session.CreateCriteria(typeof(Users.List(;

Listlist=newList(;

foreach(UsersiteminuserList

{

list.Add(item;

}

returnlist;

}

//更新用户

publicboolUpdateUser(Usersu

{

varcfg=newConfiguration(;

cfg.AddAssembly("COM.Entities";

ISessionFactoryfactory=cfg.BuildSessionFactory(;

ISessionsession=factory.OpenSession(;

UserseUsers=(Userssession.Load(typeof(Users,u.LogonId;

//使用事务来操作数据库

ITransactiontransaction=session.BeginTransaction(;

eUsers.Name=u.Name;

eUsers.Password=u.Password;

eUsers.EmailAddress=u.EmailAddress;

eUsers.LastLogon=DateTime.Now;

transaction.Commit(;

session.Flush(;//清理缓存,执行SQL

returnfalse;

}

//删除用户

publicboolDelUser(Usersu

{

varcfg=newConfiguration(;

cfg.AddAssembly("COM.Entities";//程序集的添加

ISessionFactoryfactory=cfg.BuildSessionFactory(;

ISessionsession=factory.OpenSession(;

ITransactiontransaction=session.BeginTransaction(;

session.Delete(u;

transaction.Commit(;

session.Flush(;

returntrue;

}

//添加用户

publicboolAddUser(Usersu

{

try

{

varcfg=newConfiguration(;

cfg.AddAssembly("COM.Entities";

ISessionFactoryfactory=cfg.BuildSessionFactory(;

ISessionsession=factory.OpenSession(;

ITransactiontransaction=session.BeginTransaction(;

session.Save(u;

transaction.Commit(;

session.Close(;

returntrue;

}

catch

{

returnfalse;

}

}

///使用唯一标识查询实体

///标识ID

///返回Users实体

publicUsersSelOne(stringid

{

varcfg=newConfiguration(;

cfg.AddAssembly("COM.Entities";

ISessionFactoryfactory=cfg.BuildSessionFactory(;

ISessionsession=factory.OpenSession(;

varu=(Userssession.Load(typeof(Users,id;//session.Load(根据指定的实体类或者ID从数据库中读取数据并返回与之对应的实体对象

returnu;

}

}

3最后实现ServiceBuilder.cs类的方法使其能够返回UserService类的方法,引入命名空间和代码的编写如下:

usingNHibernate实现简单的增删改查.Models.Interfaces;

usingNHibernate实现简单的增删改查.Models.MockModels;

publicsealedclassServiceBuilder//sealed修饰符可以应用于类、实例方法和属性。

密封类不能被继承。

密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。

{

publicstaticIUsersBuildUsersService(

{

returnnewUsersService(;

}

}

5.第五步实现MVC层的HomeController类

(1接下来实现MVC三层架构中的Controler层的业务逻辑,在HomeControler类中引入命名空间和代码是:

usingNHibernate实现简单的增删改查.Models.Interfaces;

usingNHibernate实现简单的增删改查.Models;

usingCOM.Entities;

[HandleError]

publicclassHomeController:

Controller

{

publicActionResultIndex(

{

IUsersiuser=ServiceBuilder.BuildUsersService(;

ViewData["UsersInfor"]=iuser.GetAll(;

returnView("Index";

}

publicActionResultOperationUser(

{

StringtextId=Request.Form["Text_ID"];

StringtextUserName=Request.Form["Text_UserName"];

StringtextPassword=Request.Form["Text_Password"];

StringemailAddress=Request.Form["Text_EmailAddress"];

DateTimelastLogon=DateTime.Now;

stringoperationT=Request.Form["operationT"];

varu=newUsers

{

LogonId=textId,

Name=textUserName,

Password=textPassword,

EmailAddress=emailAddress,

LastLogon=lastLogon

};

IUsersiuser=ServiceBuilder.BuildUsersService(;

2010年全国高校市场营销大赛实施方案

为确保参加2010年全国高职高专市场营销案例大赛

{

ViewData[

全国高校市场营销大赛是由中国市场学会、教育部考试中心、教育部高等学校高职高专工商管理类专业教学指导委员会面向全国高职院校工商管理类大学生联合主办的营销实践技能竞赛活动。

二、参赛目的

else

{

ViewData["AddSuccess"]="No";

}

}

if(operationT.Equals(长:

郭荣森

{成员:

陈舒平(指导老师)、];

stringstrU="{'LogonId':

'"+rU.LogonId+"','Name':

'"+rU.Name+"','Password':

'"+rU.Password+"','EmailAddress':

'"

四、参赛具体工作安排

(一)学校预选赛日程安排

returnContent(strU;4月3

if(operationT.Equals("DelOne"

{

12日,向2008级市场开发与营销专业学生公布“2010

}

3、4月13日,各班组建参赛小组,并按要求提交分组名单iusersAll=ServiceBuilder.BuildUsersService(;

ViewData["UsersInfor"]=iusersAll.GetAll(;

returnView("Index";

}

对参赛队参赛作品提出初审意见和修改意见About(

5、4月20

}

}

6.第6步

(1最后修改配置文件Web.Config的代码如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1