NHibernate 做个小项目来试一下吧 一
生活随笔
收集整理的這篇文章主要介紹了
NHibernate 做个小项目来试一下吧 一
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Posted on 2004-10-14 16:49 無心之柳.NET 閱讀(412) 評論(3) ?編輯?收藏
CREATE?TABLE?[dbo].[G_guestbook]?(
????[id]?[int]?IDENTITY?(1,?1)?NOT?NULL?,
????[userid]?[int]?NOT?NULL?,
????[username]?[nvarchar]?(20)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[title]?[nvarchar]?(100)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[article]?[ntext]?COLLATE?Chinese_PRC_CI_AS?NULL?,
????[pubtime]?[datetime]?NOT?NULL?
)?ON?[PRIMARY]?TEXTIMAGE_ON?[PRIMARY]
GO
CREATE?TABLE?[dbo].[G_users]?(
????[id]?[int]?IDENTITY?(1,?1)?NOT?NULL?,
????[Name]?[nvarchar]?(20)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[email]?[nvarchar]?(40)?COLLATE?Chinese_PRC_CI_AS?NULL?,
????[password]?[nvarchar]?(20)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[flag]?[int]?NOT?NULL?,
????[regtime]?[datetime]?NULL?
)
很簡單的結構,可以用就行了,
第二步是打開 VS.net 新建一個
guestbook.data的工程 ,在這里不得不感謝飛鷹,提供了cool coder這個好東東啊, 雖然還不是哪么的完美,但是生成的實體類,各 映射文件只要稍加改動就可以加到 我的工程里了,節省了大量的時間啊,
我的兩個實體類以及 映射文件
using?System;
namespace?guestbook.data
{
????public?class??guestbooks
????{
????????public?guestbooks()
????????{
????????}
????????private?System.String?_article;
????????public?System.String?article
????????{
?????????????get?{?return?_article;?}
????????????set?{?_article?=?value;?}
????????}
????????private?System.Int32?_id;
????????public?System.Int32?id
????????{
?????????????get?{?return?_id;?}
????????????set?{?_id?=?value;?}
????????}
????????private?System.DateTime?_pubtime;
????????public?System.DateTime?pubtime
????????{
?????????????get?{?return?_pubtime;?}
????????????set?{?_pubtime?=?value;?}
????????}
????????private?System.String?_title;
????????public?System.String?title
????????{
?????????????get?{?return?_title;?}
????????????set?{?_title?=?value;?}
????????}
????????private?System.Int32?_userid;
????????public?System.Int32?userid
????????{
?????????????get?{?return?_userid;?}
????????????set?{?_userid?=?value;?}
????????}
????????private?System.String?_username;
????????public?System.String?username
????????{
?????????????get?{?return?_username;?}
????????????set?{?_username?=?value;?}
????????}
????}
}
using?System;
namespace?guestbook.data
{
????public?class??users
????{
????????public?users()
????????{
????????}
????????private?System.Int32?_flag;
????????public?System.Int32?flag
????????{
?????????????get?{?return?_flag;?}
????????????set?{?_flag?=?value;?}
????????}
????????private?System.String?_email;
????????public?System.String?email
????????{
?????????????get?{?return?_email;?}
????????????set?{?_email?=?value;?}
????????}
????????private?System.Int32?_id;
????????public?System.Int32?id
????????{
?????????????get?{?return?_id;?}
????????????set?{?_id?=?value;?}
????????}
????????private?System.DateTime?_regtime;
????????public?System.DateTime?regtime
????????{
?????????????get?{?return?_regtime;?}
????????????set?{?_regtime?=?value;?}
????????}
????????private?System.String?_Name;
????????public?System.String?Name
????????{
?????????????get?{?return?_Name;?}
????????????set?{?_Name?=?value;?}
????????}
????????private?System.String?_password;
????????public?System.String?password
????????{
?????????????get?{?return?_password;?}
????????????set?{?_password?=?value;?}
????????}
????}
}
還有兩個映射文件
<?xml?version="1.0"?encoding="utf-8"??>
????<hibernate-mapping?xmlns="urn:nhibernate-mapping-2.0">
????????<class?name="guestbook.data.users,?guestbook.data"?table="G_users">
????????????????<id?name="id"?column="id"?type="Int32">
????????????????????????<generator?class="identity"?/>
????????????????</id>
????????????<property?name="Name"?type="String(20)"?column="Name"?/>
????????????<property?name="email"?type="String(40)"?column="email"?/>
????????????<property?name="password"?type="String(20)"?column="password"?/>
????????????<property?name="flag"?type="Int32"?column="flag"?/>
????????????<property?name="regtime"?type="DateTime"?column="regtime"?/>
????????????</class>
</hibernate-mapping>
<?xml?version="1.0"?encoding="utf-8"??>
????<hibernate-mapping?xmlns="urn:nhibernate-mapping-2.0">
????????<class?name="guestbook.data.guestbooks,?guestbook.data"?table="G_guestbook">
????????????????<id?name="id"?column="id"?type="Int32">
????????????????????????<generator?class="identity"?/>
????????????????</id>
????????????<property?name="userid"?type="Int32"?column="userid"?/>
????????????<property?name="username"?type="String(20)"?column="username"?/>
????????????<property?name="title"?type="String(100)"?column="title"?/>
????????????<property?name="article"?type="String"?column="article"?/>
????????????<property?name="pubtime"?type="DateTime"?column="pubtime"?/>
????????????</class>
</hibernate-mapping> 由于我用的是自動編號,所以,要將 <generator class="assigned" />改為? <generator class="identity"" />
為了能更早的了解代碼是否正確,免除只能把界面搭建出來以后才能測試一個小模塊的代碼的尷尬,所以 請出了,NUnit 雖然我還不是怎么會用,但是一個能你讓還不怎么對它怎么熟悉,但就覺得非常好用的軟件,實在是太強了
添一個新建項目 命名為 guestbook.test
寫一個測試文件
這里的主要目地是為了驗證 配置的 正確與否,所以測試文件也寫的簡單一些了,
using?System;
using?System.Collections;
using?NHibernate;
using?NHibernate.Cfg;
using?NUnit.Framework;
using?guestbook.data;
namespace?guestbook.test
{
????/**////?<summary>
????///?DataLayerUsersTest?的摘要說明。
????///?</summary>
????[TestFixture]
????public?class?DataLayerUsersTest
????{????
????????public?DataLayerUsersTest()
????????{
????????????
????????}
????????[Test]public?void?testAdd()
????????{
????????????Configuration?cfg=new?Configuration();
????????????cfg.AddXmlFile("users.hbm.xml");
????????????ISessionFactory?f=cfg.BuildSessionFactory();
????????????ISession?s=f.OpenSession();
????????????ITransaction?t=s.BeginTransaction();
????????????users?newUser=new?users();
????????????newUser.Name="papersnake";
????????????newUser.password="24976904";
????????????newUser.email="papersnakes@gmail.com";
????????????newUser.regtime=DateTime.Now;
????????????s.Save(newUser);
????????????t.Commit();
????????????s.Close();
????????????
????????}
????}
}
另一個文件也大同小意不放出來了,編譯
打開Nunit ,run 一下,出現一道美麗的綠色。
心情不是一班的好啊,哇卡卡
摘于http://www.cnblogs.com/9527/archive/2004/10/14/52326.html
只有在實際運用中才能真正的遇到問題 ,并在解決問題的過程中不斷提高
在網上參考了 http://blog.aspcool.com/tim/posts/1133.aspx
????????????????????????? http://nhibernate.3yee.com/archive/2004/04/26/439.aspx
等多篇文章后
所以 打算寫基于NHibernate 的一個小小的留言本,
首先 建數據庫
CREATE?TABLE?[dbo].[G_guestbook]?(
????[id]?[int]?IDENTITY?(1,?1)?NOT?NULL?,
????[userid]?[int]?NOT?NULL?,
????[username]?[nvarchar]?(20)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[title]?[nvarchar]?(100)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[article]?[ntext]?COLLATE?Chinese_PRC_CI_AS?NULL?,
????[pubtime]?[datetime]?NOT?NULL?
)?ON?[PRIMARY]?TEXTIMAGE_ON?[PRIMARY]
GO
CREATE?TABLE?[dbo].[G_users]?(
????[id]?[int]?IDENTITY?(1,?1)?NOT?NULL?,
????[Name]?[nvarchar]?(20)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[email]?[nvarchar]?(40)?COLLATE?Chinese_PRC_CI_AS?NULL?,
????[password]?[nvarchar]?(20)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?,
????[flag]?[int]?NOT?NULL?,
????[regtime]?[datetime]?NULL?
)
很簡單的結構,可以用就行了,
第二步是打開 VS.net 新建一個
guestbook.data的工程 ,在這里不得不感謝飛鷹,提供了cool coder這個好東東啊, 雖然還不是哪么的完美,但是生成的實體類,各 映射文件只要稍加改動就可以加到 我的工程里了,節省了大量的時間啊,
我的兩個實體類以及 映射文件
using?System;
namespace?guestbook.data
{
????public?class??guestbooks
????{
????????public?guestbooks()
????????{
????????}
????????private?System.String?_article;
????????public?System.String?article
????????{
?????????????get?{?return?_article;?}
????????????set?{?_article?=?value;?}
????????}
????????private?System.Int32?_id;
????????public?System.Int32?id
????????{
?????????????get?{?return?_id;?}
????????????set?{?_id?=?value;?}
????????}
????????private?System.DateTime?_pubtime;
????????public?System.DateTime?pubtime
????????{
?????????????get?{?return?_pubtime;?}
????????????set?{?_pubtime?=?value;?}
????????}
????????private?System.String?_title;
????????public?System.String?title
????????{
?????????????get?{?return?_title;?}
????????????set?{?_title?=?value;?}
????????}
????????private?System.Int32?_userid;
????????public?System.Int32?userid
????????{
?????????????get?{?return?_userid;?}
????????????set?{?_userid?=?value;?}
????????}
????????private?System.String?_username;
????????public?System.String?username
????????{
?????????????get?{?return?_username;?}
????????????set?{?_username?=?value;?}
????????}
????}
}
using?System;
namespace?guestbook.data
{
????public?class??users
????{
????????public?users()
????????{
????????}
????????private?System.Int32?_flag;
????????public?System.Int32?flag
????????{
?????????????get?{?return?_flag;?}
????????????set?{?_flag?=?value;?}
????????}
????????private?System.String?_email;
????????public?System.String?email
????????{
?????????????get?{?return?_email;?}
????????????set?{?_email?=?value;?}
????????}
????????private?System.Int32?_id;
????????public?System.Int32?id
????????{
?????????????get?{?return?_id;?}
????????????set?{?_id?=?value;?}
????????}
????????private?System.DateTime?_regtime;
????????public?System.DateTime?regtime
????????{
?????????????get?{?return?_regtime;?}
????????????set?{?_regtime?=?value;?}
????????}
????????private?System.String?_Name;
????????public?System.String?Name
????????{
?????????????get?{?return?_Name;?}
????????????set?{?_Name?=?value;?}
????????}
????????private?System.String?_password;
????????public?System.String?password
????????{
?????????????get?{?return?_password;?}
????????????set?{?_password?=?value;?}
????????}
????}
}
還有兩個映射文件
<?xml?version="1.0"?encoding="utf-8"??>
????<hibernate-mapping?xmlns="urn:nhibernate-mapping-2.0">
????????<class?name="guestbook.data.users,?guestbook.data"?table="G_users">
????????????????<id?name="id"?column="id"?type="Int32">
????????????????????????<generator?class="identity"?/>
????????????????</id>
????????????<property?name="Name"?type="String(20)"?column="Name"?/>
????????????<property?name="email"?type="String(40)"?column="email"?/>
????????????<property?name="password"?type="String(20)"?column="password"?/>
????????????<property?name="flag"?type="Int32"?column="flag"?/>
????????????<property?name="regtime"?type="DateTime"?column="regtime"?/>
????????????</class>
</hibernate-mapping>
<?xml?version="1.0"?encoding="utf-8"??>
????<hibernate-mapping?xmlns="urn:nhibernate-mapping-2.0">
????????<class?name="guestbook.data.guestbooks,?guestbook.data"?table="G_guestbook">
????????????????<id?name="id"?column="id"?type="Int32">
????????????????????????<generator?class="identity"?/>
????????????????</id>
????????????<property?name="userid"?type="Int32"?column="userid"?/>
????????????<property?name="username"?type="String(20)"?column="username"?/>
????????????<property?name="title"?type="String(100)"?column="title"?/>
????????????<property?name="article"?type="String"?column="article"?/>
????????????<property?name="pubtime"?type="DateTime"?column="pubtime"?/>
????????????</class>
</hibernate-mapping> 由于我用的是自動編號,所以,要將 <generator class="assigned" />改為? <generator class="identity"" />
為了能更早的了解代碼是否正確,免除只能把界面搭建出來以后才能測試一個小模塊的代碼的尷尬,所以 請出了,NUnit 雖然我還不是怎么會用,但是一個能你讓還不怎么對它怎么熟悉,但就覺得非常好用的軟件,實在是太強了
添一個新建項目 命名為 guestbook.test
寫一個測試文件
這里的主要目地是為了驗證 配置的 正確與否,所以測試文件也寫的簡單一些了,
using?System;
using?System.Collections;
using?NHibernate;
using?NHibernate.Cfg;
using?NUnit.Framework;
using?guestbook.data;
namespace?guestbook.test
{
????/**////?<summary>
????///?DataLayerUsersTest?的摘要說明。
????///?</summary>
????[TestFixture]
????public?class?DataLayerUsersTest
????{????
????????public?DataLayerUsersTest()
????????{
????????????
????????}
????????[Test]public?void?testAdd()
????????{
????????????Configuration?cfg=new?Configuration();
????????????cfg.AddXmlFile("users.hbm.xml");
????????????ISessionFactory?f=cfg.BuildSessionFactory();
????????????ISession?s=f.OpenSession();
????????????ITransaction?t=s.BeginTransaction();
????????????users?newUser=new?users();
????????????newUser.Name="papersnake";
????????????newUser.password="24976904";
????????????newUser.email="papersnakes@gmail.com";
????????????newUser.regtime=DateTime.Now;
????????????s.Save(newUser);
????????????t.Commit();
????????????s.Close();
????????????
????????}
????}
}
另一個文件也大同小意不放出來了,編譯
打開Nunit ,run 一下,出現一道美麗的綠色。
心情不是一班的好啊,哇卡卡
摘于http://www.cnblogs.com/9527/archive/2004/10/14/52326.html
轉載于:https://www.cnblogs.com/ts_xmx/archive/2004/11/08/61516.html
總結
以上是生活随笔為你收集整理的NHibernate 做个小项目来试一下吧 一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络新潮文化:Wiki不完全手册
- 下一篇: VBScript的参数引用