nhibernatet系列之一 入门

什么是nhibernate呢,这个说来话长,直接去百度百科上看吧! 

 

做为nhibernate的学习系列的第一篇,还是先从最简单的例子学起吧!

准备工具如下:

下载Nhibernate http://nhforge.org/

下载 Mysql数据库 http://www.mysql.com/downloads/mysql/

下载 Mysql驱动 http://www.mysql.com/downloads/connector/

  

1 在数据库中添加一个表student

再添加几条数据进去

注意:如果没有特别说明,以后的文章中的表都是以Id为主键并自增长.

2 新建一个控制台项目,然后添加xml文件,文件名为hibernate.cfg.xml,下面是内容

<?xml version="1.0" encoding="utf-8"?>

<!-- 

This template was written to work with NHibernate.Test.

Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it 

for your own use before compile tests in VisualStudio.

-->

<!-- This is the ByteFX.Data.dll provider for MySql -->

<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >

  <session-factory name="NHibernate.Test">

    <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>

    <property name="connection.connection_string">

      Database=test;Data Source=127.0.0.1;User Id=root;Password=123456

    </property>

    <property name="dialect">NHibernate.Dialect.MySQLDialect</property>

    <property name="show_sql">true</property>



    <mapping assembly="Controler"/>

  </session-factory>

</hibernate-configuration>

注意: Database=test;Data Source=127.0.0.1;User Id=root;Password=123456 这里需要修改成你自己的数据库连接属性

修改文件的属性为

nhibernatet系列之一 入门

不然会报下面这个错误

nhibernatet系列之一 入门

3 添加新的实体类 Student类

public class Student



    {



        public virtual int Id { get; set; }



        public virtual string SName { get; set; }



}

 

注意:属性要添加virtual关键字,这是nhibernate要求的!

4 再添加Student映射文件 Student.hbm.xml,下面是内容

<?xml version="1.0" encoding="utf-8" ?>



<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Controler" namespace="Controler">

  <class name="Student" >

    <id name="Id">

      <generator class="native"></generator>

    </id>



    <property name="SName"></property>

  </class>

</hibernate-mapping>

 

注意:其中assembly和namespace的值分别是你的程序集和命名空间的值,并且文件必须以.hbm.xml结束!

同时文件的属性要改成

nhibernatet系列之一 入门

不然后报下面这个错误

nhibernatet系列之一 入门

最后整个的程序结果如下

nhibernatet系列之一 入门

 5 主方法代码如下

static void Main(string[] args)

        {

            //1 读取nhibernate的配置文件

            Configuration cf = new Configuration().Configure();

            

            //2 创建工厂

            ISessionFactory sf = cf.BuildSessionFactory();

            

            //3 打开一个会话

            ISession se = sf.OpenSession();



            //4 调用Get方法

            Student st = se.Get<Student>(1);



            //5 输出第一个学生的姓名

            Console.WriteLine(st.SName);



            //6 关闭会话释放资源

            se.Close();

        }

运行结果:

nhibernatet系列之一 入门

 从结果可以看出来,简单的调用一个get方法,nhibernate会为我们产生一条sql语句,这就是nhibernate的作用了!方便吧,不用写任何sql语句!

下次再继续!

你可能感兴趣的:(Hibernate)