zoukankan      html  css  js  c++  java
  • NHibernate 做个小项目来试一下吧 一

    只有在实际运用中才能真正的遇到问题 ,并在解决问题的过程中不断提高
    在网上参考了 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 (11NOT 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 (11NOT 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 一下,出现一道美丽的绿色。
    心情不是一班的好啊,哇卡卡
  • 相关阅读:
    Oracle常见故障问题
    java前后端加密(转载)
    美团在Redis上踩过的一些坑-3.redis内存占用飙升(转载)
    tomcat访问(access)日志配置、记录Post请求参数(转)
    angular2学习资源汇总
    Ionic2 常见问题及解决方案
    URL Schemes(转载)
    (四)文本编辑器Vim/Vi
    C#接口作用的深入理解
    C#连接SQL Server数据库进行简单操作
  • 原文地址:https://www.cnblogs.com/9527/p/52326.html
Copyright © 2011-2022 走看看