NHibernate的几种查询方式

SQL:普通SQL查询(也就是SQLServer,Oracle,Sybase等数据库的查询语句,建议使用基于TSQL-92)

核心对象:CreateSQLQuery

IList list = session.CreateSQLQuery(select * from TabUser).AddEntity(typeof(TabUser)).List();

HQL:Hibernate查询

核心对象:CreateQuery

IList list = session.CreateQuery(“from TabUser t where t.id>:id”).SetString(“id”, “10”).List();

Criteria:标准或条件查询,ICriteria有很多属性和方法可供选择,有利于构建动态运行时查询,也就是说此方式可以构建很复杂的查询。

核心对象:CreateCriteria

IList list = session.CreateCriteria(typeof(TabUser)).List();

Lambda:表达式查询

在NHibernate 3.0以上版本,使用Lambdas强类型。

核心对象:QueryOver

IList list = isession.QueryOver(typeof(TabUser)).List();

Linq:Linq查询

NHibernate 2 and 2.1: ISession.Linq

核心对象:Linq

IList list = from t in session.Linq() select t;

NHibernate 3.0: ISession.Query

核心对象:Query

IList list = from t in session.Query() select t;

Spring.NET:Spring.NET方式

using Spring.Dao;

using Spring.Data.NHibernate.Support;

核心对象:HibernateTemplate

IList list = HibernateTemplate.Find(hql);

注意此处的hql语句请参考上面的Hibernate查询

注:HibernateTemplate不仅仅只有Find,还有各种Save,Update,Delete等等语句的用法。

同理ISession对象也有Save,Update,Delete等等语句的用法,只是要最后需要session.Flush()一下才能提交数据,当然这些已经是属于数据库的CRUD语句,已经超出此篇文章的范围,故不在此累述。

原文地址:https://www.cnblogs.com/jiangshuai52511/p/8797507.html

时间: 2024-08-08 14:32:22

NHibernate的几种查询方式的相关文章

Hibernate的Api以及三种查询方式

Hibernate  Api |-- Configuration       配置管理类对象 config.configure();    加载主配置文件的方法(hibernate.cfg.xml) 默认加载src/hibernate.cfg.xml config.configure("cn/config/hibernate.cfg.xml");   加载指定路径下指定名称的主配置文件 config.buildSessionFactory();   创建session的工厂对象 |--

Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询

HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了类或者对象.其它的,包括一些查询函数(count(),sum()等).查询条件的设定等,全都跟SQL语法一样. 示例: Session session = SessionFactory.getCurrentSession(); User user = null; Transaction ts = s

hibernate的三种查询方式

hibernate的查询方式常见的主要分为三种: HQL, QBC, 以及使用原生SQL查询(Session的查询) 1)Query的查询:使用HQL语句或SQL语句完成查询 2)Criteria的查询:通过方法和类中属性的关系,来设置查询条件,完成查询. 3)Session的查询:按主键查询查询,方法为get或load 一.HQL查询 ? HQL(Hibernate Query Language)提供了丰富灵活的查询方式,使用HQL进行查询也是Hibernate官方推荐使用的查询方式. ? H

SQLAlchemy 几种查询方式总结

转自:http://blog.csdn.net/shudaqi2010/article/details/51568219 几种常见sqlalchemy查询:#简单查询    print(session.query(User).all())print(session.query(User.name, User.fullname).all())    print(session.query(User, User.name).all()) #带条件查询    print(session.query(U

sessionFactory的创建和四种查询方式

1,关于sessionFactory的创建 5.0版本之前,下面这种方式在5.0及之后,可能会出问题,建议修改为5.0之后的方式 // 实例化Configuration Configuration configuration = new Configuration(); // 加载hibernate.cfg.xml文件 configuration.configure("/hibernate.cfg.xml"); // 创建SessionFactory StandardServiceRe

Hibernate系列(四):Hibernate两种查询方式:HQL和Criteria

Hibernate主要是提供与数据库之间交互的一个框架,想要用面向对象的语言操作关系型数据库,有如下两种操作方式: HQL语句:面向对象的查询语言,对象名区分大小写.而且不同于SQL的是这里查询的是对象,而不是表,并且支持多态.hql主要通过Query操作 Criteria类:是一种面向对象的查询,主要查询条件. 一.HQL语句: 比如我们要根据name属性查询一条记录(对象): static void query(String name){ Session s = null; try{ s =

Hibernate的session.createSQLQuery的几种查询方式

当我们用HQL进行子查询的时候,如select * from Tree where pid in (select id from Tree,此时HIBERANTE就会报错,说什么*号错误之类的.但如果将*改为Tree类里的所有子段时就不会有问题了.就会像平时一样第一行数据返 回一个Object[],然后你再根据Tree类里字段对Object[]数组里的值进行转换.这样一来比较麻烦.今天发现如果我SQL来查有一个方法可 以返回一个对象的. Configuration config = new Co

NHibernate3.2学习笔记-几种查询方式

一.开发环境 数据库:SQLServer2008 编译器:VS2010 .Net版本:.Net Framework 4.0 二.开发过程 1.项目结构 承接上一篇 2.执行sql语句 (1)基本语法 static void ExecuteSql() { string str = "select * from T_Product"; ISQLQuery query = session.CreateSQLQuery(str).AddEntity(typeof(Product)); ILis

NHibernate应用四:NHibernate的查询方式介绍

NHibernate中提供了三种查询方式:NHibernate 查询语言(HQL,NHibernate Query Language).条件查询(Criteria API,Query By Example(QBE)是Criteria API 的一种特殊情况).原生SQL(Literal SQL,T-SQL.PL/SQL). 2009年,微软发布NHibernate.Linq 1.0 后,NHibernate能通过该DLL支持LINQ.