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;
        }

posted @ 2012-12-05 10:26  knu  阅读(309)  评论(0编辑  收藏  举报
©2009-2013 knu_knu. Version: 2.1.90 Release