zoukankan      html  css  js  c++  java
  • NHibernate框架的HQL增删改查

    NHibernate框架的HQL增删改查

    NHibernate提供有很多种查询方式给我们选择,如:
    1、NHibernate查询语言(HQL,NHibernate Query Language)
    2、条件查询(Criteria API,Query By Example(QBE)是Criteria API
    的一种特殊情况)
    3、原生SQL(Literal SQL,T-SQL、PL/SQL)。
     这回我们来谈论一下NHibernate查询语言(HQL,NHibernate Query Language)
     是NHibernate特有的基于面向对象的SQL查询语言,它具有继承、
     多态和关联等特性。实际上市用OOP中的对象和属性映射了数据库中的表和列。
     我们就继续上一回发过的教程继续那个例子接着讲
     1、from子句
        1)、返回表中所有数据
        public IList<Person> GetList()
        {
     return _session.CreateQuery("from Person").List<Person>();
        }
        2)、使用as来赋予表的别名,as可以省略
        public IList<Person> GetList()
        {
     return _session.CreateQuery("from Person as p").List<Person>();
         }
    2、select子句
        1)、在结果集中返回指定的对象和属性
     public IList<int> Select()
     {
      //返回所有Person的ID
      return _session.CreateQuery("select p.ID from Person p").List<int>();
     }
    3、通过ID获取对象
            public Person GetPersonByID(int id)
            {
                Person model = _session.Get<Person>(id);
                _session.Close();
                return model;
            }
    4、添加记录
     public bool InsertPerson(Person person)
     {
      int newid=(int)_session.Save(person);
      _session.Flush();
      return newid>1?true:false;
     }
    5、更新记录
     public bool UpdatePerson(Person person)
     {
        bool bol=true;
               try
                {
                    _session.Update(model);
                    _session.Flush();
                }
                catch
                {
                   
                    bol=false;
                }
                return bol;
      
     }
    6、删除记录
            public bool DeletePerson(Person model)
            {
                //逻辑删除
                bool bol = true;
                try
                {
                    _session.Delete(model);
                    _session.Flush();
                }
                catch
                {
                    bol = false;
                }

                return bol;
            }

  • 相关阅读:
    UMeng SDK(友盟) 之 用户反馈
    CCSprite 实现书本翻页效果(quick cocos 2dx)
    quick-cocos2d-x 调用友盟(UMeng)的社区分享(Android平台)
    为精灵添加一些特殊的移动缩放动作,特效
    判断是否点击到了精灵(Sprite)
    quick-cocos-2dx学习之【scheduler.lua】
    quick-cocos-2dx学习之【init.lua】
    C/C++的头文件何处安身的问题
    Tomcat性能优化
    Tomcat基本原理
  • 原文地址:https://www.cnblogs.com/zknu/p/2802566.html
Copyright © 2011-2022 走看看