在写一个UserDao类(UserDao.cs)来操作 using System;
using System.Collections;
using Spring.Data.NHibernate.Support;
using SpringHiberate.dao.model;
namespace SpringHiberate.dao
{
public class UserDao : HibernateDaoSupport
{
public void Save(User user)
{
HibernateTemplate.Save(user);
}
public void Delete(User user)
{
HibernateTemplate.Delete(user);
}
public void Update(User user)
{
HibernateTemplate.Update(user);
}
public IList FindAll()
{
return HibernateTemplate.LoadAll(typeof(User));
}
public User Find(Object ID)
{
return (User)HibernateTemplate.Load(typeof(User), ID);
}
}
}
现在代码部分基本写完,我们开始写spring的配置文件(spring_bean_dao.xml),文件的生成操作也为嵌入的资源,他配置了数据库操作以及DAO部分,页面的操作DAO也是依赖注入的
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="
http://www.springframework.net"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="
http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd">
<object id="DbProvider" type="SpringHiberate.dao.SQLProvider, SpringHiberate">
<property name="ConnectionString" value="Data Source=192.168.1.21;Database=FastSpring20;User ID=sa;Password=oilchem2007;Trusted_Connection=False" />
</object>
<object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider" />
<property name="MappingAssemblies">
<list>
<value>SpringHiberate</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
<entry key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
<entry key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
<entry key="show_sql" value="true" />
</dictionary>
</property>
</object>
<object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider" />
<property name="sessionFactory" ref="sessionFactory" />
</object>
<object id="TransactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">
<property name="TransactionManager" ref="HibernateTransactionManager" />
<property name="TransactionAttributeSource">
<object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data" />
</property>
</object>
<object id="UserDao" type="SpringHiberate.dao.UserDao">
<property name="SessionFactory" ref="SessionFactory" />
</object>
<object type="~/Default.aspx">
<property name="UserDao" ref="UserDao" />
</object>
</objects>
修改Default.aspx.cs文件里的内容:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using SpringHiberate.spring;
using SpringHiberate.dao;
namespace SpringHiberate
{
public partial class _Default : System.Web.UI.Page
{
private UserDao userDao;
public UserDao UserDao
{
get { return userDao; }
set { userDao = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(hello.Name);
SpringHiberate.dao.model.User u = new SpringHiberate.dao.model.User();
u.Name = "safa";
u.Email = "
eicesoft@126.com";
userDao.Save(u);
}
}
}
好了,完成了.很简单吧.下面运行一下,然后看看数据库是不是新建了一条数据.
Spring.Net简化了数据框架NHibernate的操作.对页面进行注入,实现了松耦合.
Spring.Net远远不止这些.其他的方面在以后的文章中继续介绍
项目的源码打包下载