hibernate---session查询
一、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查询的更多相关文章
- hibernate模糊查询
hibernate模糊查询-Restrictions.ilike & Expression.like Criteria criteria = session.createCriteria(Ta ...
- Hibernate的查询方式总结
Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...
- Hibernate SQL查询 addScalar()或addEntity()
本文完全引用自: http://www.cnblogs.com/chenyixue/p/5601285.html Hibernate除了支持HQL查询外,还支持原生SQL查询. 对原 ...
- Hibernate条件查询
设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装.现在对 Hibernate的Criteria 的用法进行总结:Hibernate 设计了 CriteriaSpecificat ...
- atitit。 hb Hibernate sql 查询使用
atitit. hb Hibernate sql 查询使用 #----------返回list<map>法..这个推荐使用. q.setResultTransformer(Tr ...
- Could not open Hibernate Session for transaction;
javax.servlet.ServletException: org.springframework.transaction.CannotCreateTransactionException: Co ...
- Hibernate3回顾-5-简单介绍Hibernate session对数据的增删改查
5. Hibernate对数据的增删改查 5.1Hibernate加载数据 两种:get().load() 一. Session.get(Class arg0, Serializable arg1)方 ...
- [转]Hibernate Session各种状态转换方法分析
摘自http://spiritfrog.iteye.com/blog/221177 我的印象里, Hibernate session中常用的保存操作只有:save, update, saveOrUpd ...
- Hibernate高级查询QBC条件设置——Restrictions用法 引自:http://www.cnblogs.com/evon168/archive/2010/10/29/1863059.html
方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge ...
- hibernate.Session简介
★→→SessionFactory (org.hibernate.SessionFactory) 包含已经编译的映射(mappings),是制造session的工厂,可能含有一些可以在各个事务(tra ...
随机推荐
- 使用Flask部署机器学习模型
Introduction A lot of Machine Learning (ML) projects, amateur and professional, start with an aplomb ...
- 【SQL Server 问题记录】A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible.
本文涉及的相关问题,如果你的问题或需求有与下面所述相似之处,请阅读本文 A network-related or instance-specific error occurred while esta ...
- buntu下cutecom图像界面串口调试工具使用
一.安装,首先下载这个软件,终端和软件中心均可下载,终端下载命令: sudo apt-get install cutecom 即可快速搞定安装问题. 软件中心: 由于我已经通过终端安装成功,所以软件中 ...
- hive新功能cube和rollup
1.cube简称数据魔方,可以实现hive多个任意维度的查询,cube(a,b,c)则首先会对(a,b,c)进行group by,然后依次是(a,b),(a,c),(a),(b,c),(b),(c), ...
- .NET Core / C# 开发 IOT 嵌入式设备的个人见解
https://www.cnblogs.com/whuanle/p/10589496.html
- Pycharm:设置Tab键一次性为4个空格
File > Settings > Editor > Code Style > Python
- 『TensorFlow』读书笔记_Inception_V3_上
1.网络背景 自2012年Alexnet提出以来,图像分类.目标检测等一系列领域都被卷积神经网络CNN统治着.接下来的时间里,人们不断设计新的深度学习网络模型来获得更好的训练效果.一般而言,许多网络结 ...
- CF 3-6 2级组 D题 STRESSFUL TRAINING 紧张的比赛
题目大概是这样的: 给出一个数列a[n] ,对于每一个数 a [i] 来说 都会在 T - - 时 -= b[i] 每个数都在任何时刻不能小于0 你可以在每次T - - 之前时给 一 个 a[i] + ...
- 【lintcode13】字符串查找
问题: 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始).如果不存在,则返回 -1. 样例:如果 ...
- 八大排序算法——插入排序(动图演示 思路分析 实例代码java 复杂度分析)
一.动图演示 二.思路分析 例如从小到大排序: 1. 从第二位开始遍历, 2. 当前数(第一趟是第二位数)与前面的数依次比较,如果前面的数大于当前数,则将这个数放在当前数的位置上,当前数的下标-1 ...