建立NHibernateTest的Windows解决方案
将Iesi.Collections.dll,log4net.dll和NHibernate.dll三个DLL文件放入Bin文件夹
然后添加引用
Nhibernate框架可到http://mesh.dl.sourceforge.net/sourceforge/nhibernate/NHibernate-2.0.0.Beta1-src.zip下载
这是Beta1版本的,Beta2已经发布

第一步:创建User实体类
using
System;2
using
System.Collections.Generic;3
using
System.Text;4

5
namespace
NHibernateTest6
{7
[Serializable]8
public class User9
{10
private int _id;11

12
public int Id13
{14
get { return _id; }15
set { _id = value; }16
}17
private string _name;18

19
public string Name20
{21
get { return _name; }22
set { _name = value; }23
}24
private string _sex;25

26
public string Sex27
{28
get { return _sex; }29
set { _sex = value; }30
}31
}32
}
33
第二步:创建该实体类的数据映射User.hbm.xml文件(xml文件)
<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
2
<
hibernate
-
mapping xmlns
=
"
urn:nhibernate-mapping-2.2
"
default
-
lazy
=
"
false
"
>
3
<
class
name
=
"
NHibernateTest.User,NHibernateTest
"
table
=
"
Users
"
>
4
<
id name
=
"
Id
"
type
=
"
Int32
"
>
5
<
generator
class
=
"
identity
"
/>
6
</
id
>
7
<
property name
=
"
Name
"
type
=
"
String
"
/>
8
<
property name
=
"
Sex
"
type
=
"
String
"
/>
9
</
class
>
10
</
hibernate
-
mapping
>
将该文件的属性进行如下调整(选中文件,按F4)

赋值到输出目录选择 始终复制
生成操作改成 嵌入的资源
第三步:创建hibernate.cfg.xml配置文件(xml文件)
<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
2
<
hibernate
-
configuration xmlns
=
"
urn:nhibernate-configuration-2.2
"
>
3
<
session
-
factory name
=
"
NHibernate.Test
"
>
4
<
property name
=
"
connection.driver_class
"
>
NHibernate.Driver.SqlClientDriver
</
property
>
5
<
property name
=
"
connection.connection_string
"
>
6
Data Source
=
IMMENSITY/SQLEXPRESS;Initial Catalog
=
NHibernateTest;uid
=
sa;pwd
=
welcome;Pooling
=
False7
</
property
>
8
<
property name
=
"
adonet.batch_size
"
>
10
</
property
>
9
<
property name
=
"
show_sql
"
>
false
</
property
>
10
<
property name
=
"
dialect
"
>
NHibernate.Dialect.MsSql2005Dialect
</
property
>
11
<
property name
=
"
use_outer_join
"
>
true
</
property
>
12
<
property name
=
"
command_timeout
"
>
10
</
property
>
13
<
property name
=
"
query.substitutions
"
>
true
1
,
false
0
, yes
'
Y
'
, no
'
N
'
</
property
>
14
<
mapping assembly
=
"
NHibernateTest
"
/>
15
</
session
-
factory
>
16
</
hibernate
-
configuration
>
17

18
更改属性(同上):
赋值到输出目录选择 始终复制
生成操作改成 嵌入的资源
相关属性解释如下:
hibernate-configuration: NHibernate的版本信息
session-factory: 对应的类名称
connection.provider: 连接提供器的名称
connection.driver_class: 连接驱动类的名称
connection.connection_string: 数据库连接字符串
show_sql: 是否显示SQL语句
Dialect: NHibernate方言(Dialect)的类名
use_outer_join: 是否允许使用外连接
query.substitutions: 把NHibernate查询中的一些短语替换为SQL短语
assembly: 程序集名称
最后在button的onClick事件中加入如下代码:
需导入以下两个命名空间
using NHibernate.Cfg;
using NHibernate;
using
System;2
using
System.Collections.Generic;3
using
System.ComponentModel;4
using
System.Data;5
using
System.Drawing;6
using
System.Text;7
using
System.Windows.Forms;8
using
NHibernate.Cfg;9
using
NHibernate;10

11
namespace
NHibernateTest12
{13
public partial class Form1 : Form14
{15
public Form1()16
{17
InitializeComponent();18
}19

20
private void button1_Click(object sender, EventArgs e)21
{22
//会话工厂23
ISessionFactory factory = null;24
Configuration cfg = new Configuration().Configure();25
//构建配置文件的对象26
factory = cfg.BuildSessionFactory();27
//实例化会话工厂28
ISession session=factory.OpenSession();29
//设定HQL查询语句,HQL语句只能用于查询30
//注意,这里的表名不是数据库的表名,是你的实体类的名称(User)31
IQuery query = session.CreateQuery("from User");32
//得到结果集33
IList<User> list = query.List<User>();34
//关闭会话对象35
session.Close();36
this.dataGridView1.DataSource = list;37
38
}39
}40
}
运行,得到数据
我刚学习此框架,可能有说的不对的地方 ,忘各位指点
源文件下载:
http://files.cnblogs.com/immensity/NHibernateTest.rar
本文介绍如何使用NHibernate框架实现简单的数据持久化操作。包括搭建环境、创建实体类、定义映射文件及配置文件等步骤,并演示了如何通过HQL查询数据。


1477

被折叠的 条评论
为什么被折叠?



