700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(三)——NHibernate配置...

ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(三)——NHibernate配置...

时间:2020-07-07 02:14:51

相关推荐

ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(三)——NHibernate配置...

1、在CMS.App新增XML配置文件web_nhibernate.xml并设置为“嵌入的资源”

2、在Web.config中<spring> -> <resource>加入配置:

<resourceuri="assembly://CMS.App/CMS.App/web_nhibernate.xml"/>

3、web_nhibernate.xml中的代码:

Code

Code

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

<objectsxmlns=""

xmlns:db="/database">

<!--用以我们在其它的应用程序中,配置数据访问-->

<objecttype="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer,Spring.Core">

<propertyname="ConfigSections"value="databaseSettings"/>

</object>

<!--SessionFactory对象,其中包括一些比较重要的属性-->

<objectid="NHibernateSessionFactory"type="Spring.Data.NHibernate.LocalSessionFactoryObject,Spring.Data.NHibernate20">

<propertyname="DbProvider"ref="DbProvider"/>

<propertyname="MappingAssemblies">

<list>

<!--NHibernate模型和相关配置文件所在的程序集-->

<value>CMS.Model</value>

</list>

</property>

<propertyname="HibernateProperties">

<dictionary>

<entrykey="hibernate.connection.provider"

value="NHibernate.Connection.DriverConnectionProvider"/>

<entrykey="dialect"

value="NHibernate.Dialect.MsSql2000Dialect"/>

<entrykey="hibernate.connection.driver_class"

value="NHibernate.Driver.SqlClientDriver"/>

</dictionary>

</property>

<propertyname="ExposeTransactionAwareSessionFactory"value="true"/>

</object>

<!--将id为NHibernateSessionFactory的对象注入到HibernateTemplate中-->

<objectid="HibernateTemplate"type="Spring.Data.NHibernate.HibernateTemplate">

<propertyname="SessionFactory"ref="NHibernateSessionFactory"/>

<propertyname="TemplateFlushMode"value="Auto"/>

<propertyname="CacheQueries"value="true"/>

</object>

</objects>

在CMS.MvcWeb中加入对CMS.Model类库的引用(加入对模型层的引用)

NHibernate配置完成,下面是测试:

在CMS.Model新增以下文件:

User.cs:

Code

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespaceCMS.Model

{

publicclassUser

{

publicintUserID

{get;set;}

publicstringUserName

{get;set;}

publicstringUserPwd

{get;set;}

}

}

User.hbm.xml:(记得要设置成“嵌入的资源”)

Code

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

<hibernate-mappingxmlns="urn:nhibernate-mapping-2.2">

<classname="CMS.Model.User,CMS.Model"table="t_User"lazy="false">

<idname="UserID"type="Int32"unsaved-value="0">

<columnname="tm_uid"sql-type="int"not-null="true"unique="true"/>

<generatorclass="increment"/>

</id>

<propertyname="UserName"column="tm_userName"type="System.String"length="20"/>

<propertyname="UserPwd"column="tm_userPwd"type="System.String"length="32"/>

</class>

</hibernate-mapping>

在CMS.IDAL类库中新增:

Code

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespaceCMS.IDAL

{

publicinterfaceIUserDao

{

voidSave(CMS.Model.Useruser);

}

}

在CMS.DAL类库中新增对上面接口的实现:

先引用:

CMS.Model

CMS.IDAL

spring.core

spring.data

spring.data.nhibernate20

Code

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingCMS.IDAL;

usingSpring.Data.NHibernate.Support;

namespaceCMS.DAL

{

publicclassUserDao:HibernateDaoSupport,IUserDao

{

#regionIUserDao成员

publicvoidSave(CMS.Model.Useruser)

{

this.HibernateTemplate.Save(user);

}

#endregion

}

}

web_business.xml:

Code

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

<!--业务层的对像定义DAO&Manager-->

<objectsxmlns=''>

<objectid="TestBLL"type="CMS.BLL.TestBLL,CMS.BLL">

</object>

<objectid="UserDao"type="CMS.DAL.UserDao,CMS.DAL">

<propertyname="HibernateTemplate"ref="HibernateTemplate"/>

</object>

</objects>

web_web.xml:

Code

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

<!--WEB层的页面对像定义-->

<objectsxmlns=''>

<objectid="Default"type="Default.aspx">

<propertyname="ITestBLL"ref="TestBLL"/>

<propertyname="IUserDao"ref="UserDao"/>

</object>

</objects>

在CMS.Web中添加好DAL,IDAL,MODEL的引用

Default.aspx.cs

Code

usingSystem.Web;

usingSystem.Web.Mvc;

usingSystem.Web.UI;

usingCMS.IBLL;

usingCMS.IDAL;

namespaceCMS.MvcWeb

{

publicpartialclass_Default:Page

{

publicITestBLLITestBLL

{get;set;}

publicIUserDaoIUserDao

{get;set;}

publicvoidPage_Load(objectsender,System.EventArgse)

{

ITestBLL.Write();

CMS.Model.Useruser=newCMS.Model.User();

user.UserName="admin";

user.UserPwd="admin888";

IUserDao.Save(user);

Response.Write("添加成功!");

//ChangethecurrentpathsothattheRoutinghandlercancorrectlyinterpret

//therequest,thenrestoretheoriginalpathsothattheOutputCachemodule

//cancorrectlyprocesstheresponse(ifcachingisenabled).

//stringoriginalPath=Request.Path;

//HttpContext.Current.RewritePath(Request.ApplicationPath,false);

//IHttpHandlerhttpHandler=newMvcHttpHandler();

//httpHandler.ProcessRequest(HttpContext.Current);

//HttpContext.Current.RewritePath(originalPath,false);

}

}

}

运行效果:

源码下载

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。