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 ...
 
随机推荐
- Learning-Python【5】:Python数据类型(1)—— 整型、浮点型、字符串
			
一.整型 1.用途:记录年龄.等级.各种号码等 2.定义方式 age = 22 只能将纯数字的字符串转换成整型 3.常用操作+内置方法 赋值运算.比较运算.算数运算 该类型总结: 存一个值 不可变(可 ...
 - Linux配置中文输入法(搜狗输入法)
			
一.基础知识 在原生ubuntu14.04英文环境系统中只有IBus拼音,真的好难用.由于搜狗输入法确实比Linux系统下其它的中文输入法都要好用得多,所以我决定在我的Ubuntu 14.04系统中安 ...
 - LINQ之路12:LINQ Operators之数据转换(Projecting)
			
本篇继续LINQ Operators的学习,这里我们讨论的是数据转换的两种方式:Select和SelectMany,看似简单常用的两种运算符,却也大有讲究.我们会在本篇详细介绍他们的使用方式和适用的场 ...
 - Vnpy二次开发应用所需图标
			
在针对Vnpy二次开发时,很多窗口中需要使用到“小图标” 给大家分享一个UI的专业图标网,上面资源齐全. https://www.iconfont.cn/collections?personal=1
 - C#中Equals和= =(等于号)的比较)
			
C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一. 值类型的比较 对于值类型来说 ...
 - LeetCode--017--电话号码的字母组合(java)
			
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[&quo ...
 - C# 关键字this用法
			
1.this代表当前类的实例对象 public class Test { public string Name{get;set;} public void TestChange(string strN ...
 - 6月19  使用tp框架生成验证码及文件上传
			
ThinkPHP中自带能生成验证码的类:ThinkPHP/Library/Think/Verify.class.php 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think ...
 - zabbix3.4.7实操总结二
			
一,Zabbix Web操作深入 1.1 Zabbix Web下的主机和模版以及监控项的添加方式 (1)创建一个模版 我们所有的功能几乎都是在模版中定义的 我们再点进新创建的模版查看 模版里几乎可以设 ...
 - configure、make 和 make install 的区别
			
Linux编译安装中configure.make和make install各自的作用 ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GC ...