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

  • 相关阅读:
    老男孩Day17作业:后台管理平台编辑表格
    老男孩Day16作业:登录、注册、后台管理页面(动态)
    老男孩Day15作业:商城列表页面(静态)
    老男孩Day14作业:堡垒机
    老男孩Day13作业:ORM学员管理系统
    老男孩Day12作业:RabbitMQ-RPC版主机管理程序
    老男孩Day10作业:主机管理程序
    老男孩Day9作业:高级FTP
    面试遇见钓鱼公司怎么办?
    宝能技术岗面试
  • 原文地址:https://www.cnblogs.com/zknu/p/2802566.html
Copyright © 2020-2023  润新知