简单使用nHibernate,新手练习用。
2008-01-08 14:13
381 查看
最近公司有个项目要用的到nhibernate,因此用了一上午时间熟悉这个东东,对于我这个程序新手来说,第一次接触ORMapping,在熟悉过程中难免会犯一些错误。特记录再次,本文不涉及底层内容,一个仅用了一天的人来谈底层,会被人笑话的,呵呵。
这是在网上看的别人得一些文章的小总结了。
创建测试数据表。
CREATE TABLE users (
LogonID nvarchar(20) NOT NULL default '0',
Name nvarchar(40) default NULL,
Password nvarchar(20) default NULL,
EmailAddress nvarchar(40) default NULL,
LastLogon datetime default NULL
)
go
创建一个web项目,然后添加一个类库项目YangTest.Entity。
映射数据表。我用的是MyGeneration的自动生成工具,具体下载google一下吧。
再此要强调一点,网上很多文章在讲到手动创建试题类的时候,都没有给属性加Virtual关键字,这时必须的,小错误容易被人忽视啊。
public class user
{
private string id;
public virtual string LogOnID
{
get { return id; }
set { id = value; }
}
private string _name;
public virtual string name
{
get { return _name; }
set { _name = value; }
}
private string _Password;
public virtual string Password
{
get { return _Password; }
set { _Password = value; }
}
private string _Emailadress;
public virtual string Emailadress
{
get { return _Emailadress; }
set { _Emailadress = value; }
}
private DateTime? _Lastlogon;
public virtual DateTime? Lastlogon
{
get { return _Lastlogon; }
set { _Lastlogon = value; }
}
映射文件:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="YangTest.Entity.user,YangTest.Entity" table="users" lazy="true">
<id name="LogOnID" column="LogOnID" type="String">
<generator class="assigned"/>
</id>
<property column="name" type="String" name="name" length="40" />
<property column="Password" type="String" name="Password" length="20" />
<property column="Emailadress" type="String" name="Emailadress" length="40" />
<property column="Lastlogon" type="DateTime" name="Lastlogon" />
</class>
</hibernate-mapping>
这样就完成了前期的准备工作。
现在我们才真正开始体验Nhibernate的便捷之处。
编辑我们的web项目的web.config文件,添加nhibernate配置
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Server=192.168.0.106;database=YangTest;uid=sa;pwd=xinwei"
/>
<add
key="hibernate.connection.isolation"
value="ReadCommitted"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add key="show_sql" value="true"/> //这里是看的别人的一个帖子,可以监视sql语句
</nhibernate>
我是直接写在web.config里头的,没有单独建一个config。
这样双击aspx页面的button处理一下事件,体验一下nhibernate如何工作的。
using NHibernate;
using NHibernate.Cfg; //记得添加引用啊
using YangTest.Entity;
protected void btnAdd_Click(object sender, EventArgs e)
{
cfg = new NHibernate.Cfg.Configuration();
cfg.AddAssembly("YangTest.Entity");
sessions = cfg.BuildSessionFactory();
session = sessions.OpenSession();
YangTest.Entity.user user = new user();
user.LogOnID = "1";
user.name = "Jack";
user.Password = "654321";
user.Emailadress = "jack@163.com";
user.Lastlogon = DateTime.Now;
session.Save(user);
session.Flush();
session.Close();
}
好了,数据添加进去了,省去了自己写SQL语句的麻烦,这样就可以把精力集中起来处理业务流程的问题了,又提高生产率了,嘿嘿。
好了,就这么多了,我是新手,只知道这么多了,以后熟悉了之后可能会写深入一点。
这是在网上看的别人得一些文章的小总结了。
创建测试数据表。
CREATE TABLE users (
LogonID nvarchar(20) NOT NULL default '0',
Name nvarchar(40) default NULL,
Password nvarchar(20) default NULL,
EmailAddress nvarchar(40) default NULL,
LastLogon datetime default NULL
)
go
创建一个web项目,然后添加一个类库项目YangTest.Entity。
映射数据表。我用的是MyGeneration的自动生成工具,具体下载google一下吧。
再此要强调一点,网上很多文章在讲到手动创建试题类的时候,都没有给属性加Virtual关键字,这时必须的,小错误容易被人忽视啊。
public class user
{
private string id;
public virtual string LogOnID
{
get { return id; }
set { id = value; }
}
private string _name;
public virtual string name
{
get { return _name; }
set { _name = value; }
}
private string _Password;
public virtual string Password
{
get { return _Password; }
set { _Password = value; }
}
private string _Emailadress;
public virtual string Emailadress
{
get { return _Emailadress; }
set { _Emailadress = value; }
}
private DateTime? _Lastlogon;
public virtual DateTime? Lastlogon
{
get { return _Lastlogon; }
set { _Lastlogon = value; }
}
映射文件:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="YangTest.Entity.user,YangTest.Entity" table="users" lazy="true">
<id name="LogOnID" column="LogOnID" type="String">
<generator class="assigned"/>
</id>
<property column="name" type="String" name="name" length="40" />
<property column="Password" type="String" name="Password" length="20" />
<property column="Emailadress" type="String" name="Emailadress" length="40" />
<property column="Lastlogon" type="DateTime" name="Lastlogon" />
</class>
</hibernate-mapping>
这样就完成了前期的准备工作。
现在我们才真正开始体验Nhibernate的便捷之处。
编辑我们的web项目的web.config文件,添加nhibernate配置
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Server=192.168.0.106;database=YangTest;uid=sa;pwd=xinwei"
/>
<add
key="hibernate.connection.isolation"
value="ReadCommitted"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add key="show_sql" value="true"/> //这里是看的别人的一个帖子,可以监视sql语句
</nhibernate>
我是直接写在web.config里头的,没有单独建一个config。
这样双击aspx页面的button处理一下事件,体验一下nhibernate如何工作的。
using NHibernate;
using NHibernate.Cfg; //记得添加引用啊
using YangTest.Entity;
protected void btnAdd_Click(object sender, EventArgs e)
{
cfg = new NHibernate.Cfg.Configuration();
cfg.AddAssembly("YangTest.Entity");
sessions = cfg.BuildSessionFactory();
session = sessions.OpenSession();
YangTest.Entity.user user = new user();
user.LogOnID = "1";
user.name = "Jack";
user.Password = "654321";
user.Emailadress = "jack@163.com";
user.Lastlogon = DateTime.Now;
session.Save(user);
session.Flush();
session.Close();
}
好了,数据添加进去了,省去了自己写SQL语句的麻烦,这样就可以把精力集中起来处理业务流程的问题了,又提高生产率了,嘿嘿。
好了,就这么多了,我是新手,只知道这么多了,以后熟悉了之后可能会写深入一点。
相关文章推荐
- 这是一个简单的图片时间器;使用html+css+js,合适新手练习
- 59.自定义View练习(四)使用PathMeasure简单模仿系统ProgressBar
- 小白练习-使用BeautifulSoup库简单的爬虫练习
- nhibernate的简单配置与使用
- 使用NHibernate(6)-- HQL && ICriteria 简单介绍
- 练习2:FALG 功能的简单使用
- 新手入门使用git 简单使用 终端命令
- 简单编程(一) 新手入门作业 [要求用户输入两个整数,判断第一个整数是否是第二个整数的倍数(使用运算符%)。]
- JSP简单练习-使用JDOM创建xml文件
- Socket tcp练习以及io流的简单使用
- NHibernate考察系列 02 使用入门 简单映射
- 经典的SQL语句,适合新手练习使用(三)-技巧
- (安卓APP)关于使用偏好设置储存数据,首次登录应用到新手指导页,再次登录直接到主页面简单的相关实现代码
- CKplayer 新手入门超简单使用教程
- 【UGUI练习记录】使用UGUI与MySql实现的简单角色管理
- 练习使用 socket 发送简单的 HTTP GET 请求
- NHibernate Profiler使用简单教程
- Kotlin的简单使用练习
- Nhibernate数据查询简单使用
- JSP简单练习-使用JDOM创建xml文件