一、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. 初始FreeMake

    此文章是观看视频学习的,只是一点点基础还不太深 视频地址:http://www.icoolxue.com/play/5773 源码:码云:https://gitee.com/wmjGood/FreeM ...

  2. All You Can Code 2008 (Romanian Contest) A - Tree Search

    A - Tree Search 思路: 经典树形dp dp[i][0]表示i的子树中以i为端点的最大链 dp[i][1]表是整棵树中除去i的子树剩下的部分以i为端点的最大链 最后答案就是以i为端点的最 ...

  3. Spring boot actuator端点启用和暴露

    1.启用端点 默认情况下,除了shutdown端点是关闭的,其它的都是启用的.配置一个端点的启用,使用management.endpoint..enabled属性,下面的例子是启用shutdown端点 ...

  4. [JavaScript] 给input标签传值

    body: <input type="text" style="width: 240px;" name="orgname" id=&q ...

  5. tcp滑动窗口详解(2)

    http://blog.csdn.net/yujun00/article/details/636495 ARQ与滑动窗口概念  滑动窗口协议,是TCP使用的一种流量控制方法.该协议允许发送方在停止并等 ...

  6. Android基础知识(一)

    前言 前言 从软件测试最终目的发现问题缺陷来看,Findyou比较认同一个观念,测试的能力大致可以划分成三个能力层次:发现问题.定位问题.预防问题.有机会探讨一下这个分类. 发现问题各种方式方法,比如 ...

  7. 网络编程,socket

    1.网络编程 网络: TCP/IP 彼此之间遵守协议和规范!之间才能产生通信! IP: 每个人都有自己的身份证号! 用来标识我们网络中每一台计算机! IP地址= 网络地址 +主机地址 网络地址 :标识 ...

  8. SpringMVC 搭建遇到的坑

    1. Caused by: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 60; cvc-complex-type.2.4.c ...

  9. C语言一维数组定义及引用时括号[]内容

    一维数组定义:数组名[常量表达式] 一维数组引用:数组名[整型常量或整型表达式] *说明:常量表达式 > 整型表达式 > 整型常量 #define N 100 宏定义没有具体的数据类型, ...

  10. 禁止WORDPRESS站内搜索的方法

    如果我们希望禁止站内搜索,毕竟会是的MYSQL负担加重,我们可以禁止掉,然后在使用第三方搜索组件.比如用百度站内搜索或者360站内搜索. function fb_filter_query( $quer ...