基于NHibernate的三层结构应用程序开发初步
2006-11-28 13:25
387 查看
本文并不是去详细的介绍如何使用NHibernate,而是通过一个简单的例子来演示基于NHibernate的三层结构应用程序开发过程。
第一步:准备数据表
在这里用一个最简单的例子,有一张关于的用户的表,有编号,姓名,密码,Email地址和最后一次的登录时间几个字段。
Create Table Users(
LogonID varchar(20) Primary key,
Name varchar(40),
Password varchar(20),
EmailAddress varchar(40) ,
LastLogon datetime
)
第二步:创建需要被持久化的类
在.NET中创建一个NHibernateWebDemo.Model的工程,添加User实体类。
//User.cs
using System;
namespace NHibernateWebDemo.Model
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="NHibernateWebDemo.Model.User, NHibernateWebDemo.Model" table="users">
<id name="Id" column="LogonId" type="String" length="20">
<generator class="assigned" />
</id>
<property name="UserName" column= "Name" type="String" length="40"/>
<property name="Password" type="String" length="20"/>
<property name="EmailAddress" type="String" length="40"/>
<property name="LastLogon" type="DateTime"/>
</class>
</hibernate-mapping>
第四步:进行配置文件的设置
在配置文件中,我们要告诉NHibernate所使用的数据库是什么,以及如何连接该数据库。
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<nhibernate>
<add key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"/>
<add key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"/>
<add key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"/>
<add key="hibernate.connection.connection_string"
value="server=.;uid=sa;pwd=sa;database=test"/>
</nhibernate>
第五步:编写数据访问层的公用类
在这里,编写了两个公用的类,分别进行Session的创建和实体的操作。在这两个类中用单件模式,来限制Session的创建。为了做到与具体的应用程序无关,在这里把程序集的名称作为参数,传递给OpenSession()方法。可以把这两个类单独放在一个名为Common的工程下,这里先把它们放在DAL层中。这两个类只是个人的一种写法,大家可以自行去编写。
//SessionFactory.cs
using System;
using System.Reflection;
using System.Data;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
namespace NHibernateWebDemo.DAL
//EntityControl.cs
using System;
using System.Collections;
using NHibernate;
namespace NHibernateWebDemo.DAL
//UserDAL.cs
using System;
using System.Collections;
using NHibernateWebDemo.Model;
namespace NHibernateWebDemo.DAL
//UserBLL.cs
using System;
using System.Collections;
using NHibernateWebDemo.DAL;
using NHibernateWebDemo.Model;
namespace NHibernateWebDemo.BLL
{
public class UserBLL
{
public void AddUser(User user)
{
UserDAL dal = new UserDAL();
dal.AddUser(user);
}
public void UpdateUser(User user,string Id)
{
UserDAL dal = new UserDAL();
dal.UpdateUser(user,Id);
}
public void DeleletUser(User user)
{
UserDAL dal = new UserDAL();
dal.DeleteUser(user);
}
public IList GetAllUsers(string strHQL)
{
UserDAL dal = new UserDAL();
return dal.GetAllUsers(strHQL);
}
}
}
第八步:实现用户界面
用户界面很简单,这里就不给出代码了,完成后的用户界面:
第一步:准备数据表
在这里用一个最简单的例子,有一张关于的用户的表,有编号,姓名,密码,Email地址和最后一次的登录时间几个字段。
Create Table Users(
LogonID varchar(20) Primary key,
Name varchar(40),
Password varchar(20),
EmailAddress varchar(40) ,
LastLogon datetime
)
第二步:创建需要被持久化的类
在.NET中创建一个NHibernateWebDemo.Model的工程,添加User实体类。
//User.cs
using System;
namespace NHibernateWebDemo.Model
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="NHibernateWebDemo.Model.User, NHibernateWebDemo.Model" table="users">
<id name="Id" column="LogonId" type="String" length="20">
<generator class="assigned" />
</id>
<property name="UserName" column= "Name" type="String" length="40"/>
<property name="Password" type="String" length="20"/>
<property name="EmailAddress" type="String" length="40"/>
<property name="LastLogon" type="DateTime"/>
</class>
</hibernate-mapping>
第四步:进行配置文件的设置
在配置文件中,我们要告诉NHibernate所使用的数据库是什么,以及如何连接该数据库。
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<nhibernate>
<add key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"/>
<add key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"/>
<add key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"/>
<add key="hibernate.connection.connection_string"
value="server=.;uid=sa;pwd=sa;database=test"/>
</nhibernate>
第五步:编写数据访问层的公用类
在这里,编写了两个公用的类,分别进行Session的创建和实体的操作。在这两个类中用单件模式,来限制Session的创建。为了做到与具体的应用程序无关,在这里把程序集的名称作为参数,传递给OpenSession()方法。可以把这两个类单独放在一个名为Common的工程下,这里先把它们放在DAL层中。这两个类只是个人的一种写法,大家可以自行去编写。
//SessionFactory.cs
using System;
using System.Reflection;
using System.Data;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
namespace NHibernateWebDemo.DAL
//EntityControl.cs
using System;
using System.Collections;
using NHibernate;
namespace NHibernateWebDemo.DAL
//UserDAL.cs
using System;
using System.Collections;
using NHibernateWebDemo.Model;
namespace NHibernateWebDemo.DAL
//UserBLL.cs
using System;
using System.Collections;
using NHibernateWebDemo.DAL;
using NHibernateWebDemo.Model;
namespace NHibernateWebDemo.BLL
{
public class UserBLL
{
public void AddUser(User user)
{
UserDAL dal = new UserDAL();
dal.AddUser(user);
}
public void UpdateUser(User user,string Id)
{
UserDAL dal = new UserDAL();
dal.UpdateUser(user,Id);
}
public void DeleletUser(User user)
{
UserDAL dal = new UserDAL();
dal.DeleteUser(user);
}
public IList GetAllUsers(string strHQL)
{
UserDAL dal = new UserDAL();
return dal.GetAllUsers(strHQL);
}
}
}
第八步:实现用户界面
用户界面很简单,这里就不给出代码了,完成后的用户界面:
相关文章推荐
- 基于NHibernate的三层结构应用程序开发初步
- 基于NHibernate的三层结构应用程序开发初步
- 基于NHibernate的三层结构应用程序开发初步 (转Terrylee)
- 基于NHibernate的三层结构应用程序开发初步
- 基于NHibernate的三层结构应用程序开发初步
- 基于NHibernate的三层结构应用程序开发初步
- 基于NHibernate的三层结构应用程序开发初步
- 基于NHibernate的三层结构应用程序开发初步
- 基于NHibernate的三层结构应用程序开发初步
- 转:基于NHibernate的三层结构应用程序开发初步
- 用ASP.NET开发三层结构应用程序
- Web应用程序开发三层结构图
- 用MS.NET开发三层结构应用程序
- 用MS.NET开发三层结构应用程序
- 怎样用VS2005进行三层结构应用程序的开发
- 用VS2005.NET进行三层结构应用程序的开发
- 怎样用VS2005进行三层结构应用程序的开发
- [转贴]用ASP.NET开发三层结构应用程序(一)--结构介绍
- 怎样用VS2005进行三层结构应用程序的开发
- 用VS2005.NET进行三层结构应用程序的开发