Posted on 2004-10-14 16:49 无心之柳.NET 阅读(412) 评论(3)  编辑 收藏

只有在实际运用中才能真正的遇到问题 ,并在解决问题的过程中不断提高
在网上参考了 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 做个小项目来试一下吧 一相关推荐

  1. 做个小项目——温控仪

    实验室要做个小项目,简单的来说就是采集温度,然后根据采集的温度值进行一个闭环控制,最终输出结果控制继电器. 关键词:MAX6675,热电偶,IAR,mega128,Modbus MAX6675是一款专 ...

  2. 四个在家手机就能做的小项目,100+一天【10个项目】

    1.14个在家端个手机就能做的小项目,100+一天 2.成本只需30块的产品,1000不到的播放量,做到70W月的业绩 3.抖音水果代购项目,搭建管道,真正自动收益 4.靠声音怎么变现?声音搬运亦能轻 ...

  3. 带你学做PHP小项目

    大家好,PHP是世界上最好的语言!它的好搭档自然是mysql数据库. 今天我就带大家学习做一个PHP项目的全过程! 1.需求分析 2.功能规划 3.页面设计 4.数据库设计 5.创建数据库及表结构 6 ...

  4. 做个小项目那不是简简单单!Java实现航空航班管理系统。

    Plane对象: 在Plane对象里定义了飞机的编号id.航班号.目的地.起飞日期.生成了构造方法和toString()方法:以及getting()和setting()方法,但在程序里没用到. pac ...

  5. 用python做web小项目_Python之路【第十八篇】Django小项目webQQ实现

    WEBQQ的实现的几种方式 1.HTTP协议特点 首先这里要知道HTTP协议的特点:短链接.无状态! 在不考虑本地缓存的情况举例来说:咱们在连接博客园的时候,当tcp连接后,我会把我自己的http头发 ...

  6. 【Android学习之路】之从零开始做一个小项目(一)

    最近在学Android(初学者吖),写下这个[Android学习之路]系列记录一下自己学习的过程,欢迎阅读~

  7. 闲来无事,类似刷钻平台做了小项目,分享给大家

    美工不行,自己在网上找的免费模板,分享下, 多余的话不说了,以下上图吧. 下载地址:http://download.csdn.net/detail/zhao0p/4190555

  8. 有什么好赚钱的项目可以做?这8个小项目不错,想赚钱的别错过!

    我想想这疫情几年,大家应该都是挺难的. 上班的上上停停,开店的关关开开,但是成本一点没有减少. 但是,我想就算这样的情况下还是有很多赚钱的. 其实,这个和行业有关系, 选择大于努力, 有些成本低,或者 ...

  9. C语言小项目——通讯录的存储系统(静态版,动态版,文件版)

    目录 前言 一.总体设计框架 二.三种通讯录的功能阐述 三.静态通讯录 1.结构体设计 2.初始化通讯录 3.增加联系人的信息 4.删除联系人的信息 5.查找指定联系人并打印 6.修改联系人的信息 7 ...

最新文章

  1. SurfaceView的一个小应用:开发示波器
  2. python写简单购物车_python简单的购物车程序(含代码)
  3. 太相信书的人,格局不会太大
  4. 一个创业公司的API网关落地实践--转
  5. Mac电脑设置adb环境变量
  6. Codeforce C. Buns
  7. Hybris Storefront里如何给用户绑定手机号
  8. pcm 采样率转换_All Video Converter Pro for mac(音视频格式转换器)
  9. 论ORM之EFCore初篇(快速基于本地数据库实现数据操作)
  10. Java实现两个递增有序链表合并成一个递增有序链表和两个非递减有序链表合成一个非递增有序链表
  11. lvalue-xvalue-prvalue
  12. Android缓存学习入门
  13. svn添加到windows服务中
  14. Class.forName和ClassLoader有什么区别
  15. 批量修改 Netapp NFS Export
  16. OAF_开发系列18_实现OAF页面跳转setForwardURL / forwardImmediately(案例)
  17. [JNI] 开发实例(2) 编译libwebsocket,封装jni函数,搭建IM通信基础服务
  18. [数据仓库]基础理论笔记
  19. 文件压缩(哈夫曼树)
  20. 网络卡打开网页在转圈圈怎么解决?

热门文章

  1. python实现excel筛选功能并输出_python如何实现excel按颜色筛选功能
  2. 大学新生学计算机推荐电脑,大学新生用什么电脑好呢?
  3. java foreach和for循环区别_java相关:老生常谈foreach(增强for循环)和for的区别
  4. cpri带宽不足的解决方法_白皮书:FPGA赋能下一代通信和网络解决方案(第四部分)...
  5. 后台系统可扩展性学习笔记(十二)NoSQL
  6. leetcode 134. 加油站 思考分析
  7. leetcode 376. 摆动序列 思考分析
  8. python日历模块_Python日历模块| firstweekday()方法与示例
  9. HTML5 学习笔记
  10. php 上传多个txt文件上传,一个多文件上传的例子(原创)