zoukankan      html  css  js  c++  java
  • Nhibernate教程2(4)

    4. 使用NHibernate的API进行编程

    数据库编程不外乎“添加”、“删除”、“更新”,看看NHibernate是如何实现这三种操作吧。

    (1)       在类中声明NHibernate的Factory

    private static Configuration mCfg=new Configuration();
    private static NHibernate.ISessionFactory SessionFactory=null;

    (2)       在系统初始化的时候加载XML,并创建Factory

    mCfg.AddXmlFile( ApplicationPath +"/Course.hbm.xml");
    mCfg.AddXmlFile( ApplicationPath +"/Student.hbm.xml");

    SessionFactory=mCfg.BuildSessionFactory();

    (3)       使用HSql查询

    string hsql="from Student where StudentName='kexd'";

    ISession vSession= SessionFactory.OpenSession();

    IQuery query = vSession.CreateQuery(hsql);

    IList list = query.List();

    if(list.Count>0){

       Student obj=(Student)list[0];

       //.....

    }

    vSession.Close();

    (4)       根据主键查询

    int studentID=1;

    ISession vSession= SessionFactory.OpenSession();

    Student obj=(Student) vSession.Load(typeof(Student),studentID);

    vSession.Close();

    (5)       插入

    Student obj=new Student();

    obj.StudentName="wuyang";

    obj.StudentPassword="helloWorld";

    ITransaction vTransaction = vSession.BeginTransaction();

    try

    {

       vSession.Save(obj);

       vTransaction.Commit();

    }

    catch(Exception)

    {

       vTransaction.Rollback();

    }

    vSession.Close();

    (6)       更新

    ISession vSession= Config.SessionFactory.OpenSession();

    IQuery query = vSession.CreateQuery("from Student where StudentName='kexd'");

    IList list = query.List();

    ITransaction vTransaction = vSession.BeginTransaction();

    try

    {

       foreach(Student obj in list)

       {

          obj.EmailAddress="kesfzu@21cn.com";

          vSession.Save(obj);

       }

       vTransaction.Commit();

    }

    catch(Exception)

    {

       vTransaction.Rollback();

    }

    finally

    {

       vSession.Close();

    }

    (7)       删除

    ISession vSession= Config.SessionFactory.OpenSession();

    IQuery query = vSession.CreateQuery("from Student where StudentName='kexd'");

    IList list = query.List();

    ITransaction vTransaction = vSession.BeginTransaction();

    try

    {

       foreach(Student obj in list)

       {

               vSession.Delete(obj);

       }

       vTransaction.Commit();

    }

    catch(Exception)

    {

       vTransaction.Rollback();

    }

    finally

    {

       vSession.Close();

    }

  • 相关阅读:
    PHP mysqli_sqlstate() 函数
    修改用户家目录
    mysql 我的学习
    mysql 表空间
    mysql cluster 运行的必备条件
    浅谈mysql集群
    RBAC权限管理
    mysql 恢复备份
    oracle10G/11G官方下载地址集合 直接迅雷下载
    MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1538340.html
Copyright © 2011-2022 走看看