一、hql语句查询(适合多表)

public class MyTest {
public static void main(String[] args) { //查询集合
Session session = SessionUtil.openSession();
String hql = "from Emp";
Query query = session.createQuery(hql);
@SuppressWarnings("unchecked")
List<Emp> list = query.list(); //带条件查询方法1
String hql2 = "from Emp where empno = ?";
Query query2 = session.createQuery(hql2);
query2.setInteger(0, 23);
Emp emp = (Emp) query2.uniqueResult(); //带条件查询方法2
String hql3 = "from Emp where empno = ?";
Query query3 = session.createQuery(hql3);
query3.setParameter(0, 23);
Emp emp2 = (Emp) query3.uniqueResult(); //带条件查询方法3(命名占位符)
String hql4 = "from Emp where empno = :xx";
Query query4 = session.createQuery(hql4);
query4.setParameter("xx", 23);
Emp emp3 = (Emp) query4.uniqueResult(); //分页查询
String hql5 = "from Emp";
Query query5 = session.createQuery(hql5);
query5.setFirstResult(0);
query5.setMaxResults(10);
@SuppressWarnings("unchecked")
List<Emp> list2 = query5.list(); System.out.println(list);
System.out.println(emp);
System.out.println(emp2);
System.out.println(emp3);
System.out.println(list2);
}
}

二、criteria查询(无语句查询,适合单表查询)

  

private static void run2() {
//查询集合
Session session = SessionUtil.openSession();
Criteria criteria = session.createCriteria(Emp.class);
List<Emp> list = criteria.list(); /*
* 带条件查询方法
* > gt
* < lt
* == eq
* != ne
*/
Criteria criteria2 = session.createCriteria(Emp.class);
criteria2.add(Restrictions.eq("empno", 23));
Emp emp = (Emp) criteria2.uniqueResult(); //分页查询
Criteria criteria3 = session.createCriteria(Emp.class);
criteria3.setFirstResult(0);
criteria3.setMaxResults(2);
List<Emp> list2 = criteria3.list(); System.out.println(list);
System.out.println(emp);
System.out.println(list2);
}

三、原生态sql语句查询

private static void run3() {
//集合查询
Session session = SessionUtil.openSession();
String sql = "select * from Emp";
SQLQuery sqlQuery = session.createSQLQuery(sql);
sqlQuery.addEntity(Emp.class);
List<Emp> list = sqlQuery.list(); //条件查询
String sql2 = "select * from emp where ename = ?";
SQLQuery sqlQuery2 = session.createSQLQuery(sql2);
// sqlQuery2.setParameter(0, "JAMES");
sqlQuery2.setString(0, "JAMES");
sqlQuery2.addEntity(Emp.class);
List<Emp> list2 = sqlQuery2.list(); //分页查询
//如果是mysql使用特有的limit
//如果是oracle使用原生态sql查询 System.out.println(list);
System.out.println(list2);
}

hibernate---session查询的更多相关文章

  1. hibernate模糊查询

    hibernate模糊查询-Restrictions.ilike & Expression.like Criteria criteria = session.createCriteria(Ta ...

  2. Hibernate的查询方式总结

    Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...

  3. Hibernate SQL查询 addScalar()或addEntity()

    本文完全引用自: http://www.cnblogs.com/chenyixue/p/5601285.html Hibernate除了支持HQL查询外,还支持原生SQL查询.          对原 ...

  4. Hibernate条件查询

    设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装.现在对 Hibernate的Criteria 的用法进行总结:Hibernate 设计了 CriteriaSpecificat ...

  5. atitit。 hb Hibernate sql 查询使用

    atitit. hb  Hibernate sql 查询使用 #----------返回list<map>法..这个推荐使用.      q.setResultTransformer(Tr ...

  6. Could not open Hibernate Session for transaction;

    javax.servlet.ServletException: org.springframework.transaction.CannotCreateTransactionException: Co ...

  7. Hibernate3回顾-5-简单介绍Hibernate session对数据的增删改查

    5. Hibernate对数据的增删改查 5.1Hibernate加载数据 两种:get().load() 一. Session.get(Class arg0, Serializable arg1)方 ...

  8. [转]Hibernate Session各种状态转换方法分析

    摘自http://spiritfrog.iteye.com/blog/221177 我的印象里, Hibernate session中常用的保存操作只有:save, update, saveOrUpd ...

  9. Hibernate高级查询QBC条件设置——Restrictions用法 引自:http://www.cnblogs.com/evon168/archive/2010/10/29/1863059.html

    方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge ...

  10. hibernate.Session简介

    ★→→SessionFactory (org.hibernate.SessionFactory) 包含已经编译的映射(mappings),是制造session的工厂,可能含有一些可以在各个事务(tra ...

随机推荐

  1. oracle substr函数

    //截取下划线后的字符串 select substr('GY_272',instr('GY_272', '_', -1, 1)+1)   from dual select substr('GY_272 ...

  2. Learning-Python【18】:Python常用模块(1)—— time、datetime、randrom

    time 模块:与时间相关的功能的模块 在 Python 中,时间分为三种: 1.时间戳:是一个时间的表示,根据不同的语言,可以是整数或浮点数,是从1970年1月1日0时0分0秒到现在经历的秒数 2. ...

  3. 使用SpotBugs/FindBugs进行代码检查

    原po:https://blog.csdn.net/zhangb00/article/details/8407070 SpotBugs 介绍 SpotBugs是Findbugs的继任者(Findbug ...

  4. C# winform 选择文件保存路径

    1.winform 点击按钮选择文件保存的路径,效果如下图: 具体代码如下: private void button8_Click(object sender, EventArgs e) { Fold ...

  5. JS模态框 简单案例

    演示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8 ...

  6. yum命令报错 yum update File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: --CentOS7.5

    1.问题: 使用yum命令如:yum update 报SyntaxError invalid syntax 2.原因分析 yum的解释器是Python,CentOS自带的yum采用(自带的)pytho ...

  7. Windows 2003 Server R2 x64 IIS6.0 eWebEditor无法显示的问题

    64位的操作系统安装成功后,一般IIS也是默认的64位的解析,所以将程序放到64位操作系统上的时候,会出现IIS错误,解决方案也非常简单,将64位IIS停止,启动32位的就可以了. 输入以下命令启用 ...

  8. Linux 独立启动方式安装 Archiva

    为了方便起见,我们假设你的 archiva 安装到目录 /opt 下面. 下载安装程序 进入 Archiva 的项目的下载页面中,请单击链接:https://archiva.apache.org/do ...

  9. Python 小节回顾

    1.python程序是大小写敏感. 2.python中字符串是用单引号 ' 或双引号 " 括起来的任意文本. python中用 r '  ' 表示 ' ' 内部的字符串不转义. 3.在pyt ...

  10. 洛谷 P2661信息传递

    图论——>并查集 P2661 本蒟蒻啥也不会 这题还WA了1次 =  = 最后看题解A 哭了 看题是多个(N<=200000)东西之间的关系维护 果断想到并查集 在第i个位置的a[i] 表 ...