Hibernate的查询分几种
HQL,QBC(QBE),SQL
HQL查询
HQL是基于面向对象的,里面没有表,也没有列,有类和属性
直接以from开头,表示全部选择
从Hibernate3.1可以执行修改和删除
from Emp
eg1. 带?参数查询
Session session = HibernateSessionFactory.getSession();
String hql="from Emp e where e.ename like ?";
Query query=session.createQuery(hql);
query.setString(0, "%"+"a"+"%");
List list=query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg.2 带:命名参数
Session session = HibernateSessionFactory.getSession();
String hql="from Emp e where e.ename like :name";
Query query=session.createQuery(hql);
query.setString("name", "%a%");
List list=query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg3.in查询
Session session = HibernateSessionFactory.getSession();
String hql="from Emp e where e.empno in (:list)";
Query query=session.createQuery(hql);
query.setParameterList("list", new Long[]{1L,3L,5L});
List list=query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg4.连接查询
Session session = HibernateSessionFactory.getSession();
String hql = "from Emp e where e.dept.dname like ?";
Query query = session.createQuery(hql);
query.setString(0, "%RE%");
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg5. 笛卡尔积
Session session = HibernateSessionFactory.getSession();
String hql = "select e from Emp e,Dept";
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg6. 带条件
Session session = HibernateSessionFactory.getSession();
String hql = "select e from Emp e,Dept d where e.dept=d";
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg7. select 多个对象,会形成 List里面放Object数组,数组里面放对象
Session session = HibernateSessionFactory.getSession();
String hql = "select e,d from Emp e,Dept d where e.dept=d";
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg8. select 一列,就会形成这一列类型的集合,不会生成Object数组
Session session = HibernateSessionFactory.getSession();
String hql = "select e.empno from Emp e,Dept d where e.dept=d";
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg9. select多个值,会形成Object[]
Session session = HibernateSessionFactory.getSession();
String hql = "select e.empno,e.ename from Emp e,Dept d where e.dept=d";
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg10.查询生成List里面放HashMap,key由as后面的字符串决定
Session session = HibernateSessionFactory.getSession();
String hql = "select new map(e.empno as id,e.ename as name) from Emp e";
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg11.迫切左连接查询
Session session = HibernateSessionFactory.getSession();
String hql = "from Emp e left join fetch e.dept";
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
eg12.分页查询
Session session = HibernateSessionFactory.getSession();
String hql = "from Emp ";
Query query = session.createQuery(hql);
query.setFirstResult(10);//从第几条开始,初始是0 (page-1)*pageSize;
query.setMaxResults(5);//取几条
List list = query.list();
System.out.println(list.size());
HibernateSessionFactory.closeSession();
分享到:
相关推荐
1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture...
5)、setProperties()方法,把命名参数与一个对象的属性值绑定 3. Hibernate基础配置 4. commons DBCP 配置说明 5. Hibernate的缓存机制介绍 6. Hibernate缓存机制带来的一个负面问题 7. hibernate cache 缓存 8. ...
1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture...
1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture...
1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture...
1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture) ...
5.2.3. 自定义值类型 5.3. SQL中引号包围的标识符 5.4. 其他元数据(Metadata) 5.4.1. 使用 XDoclet 标记 5.4.2. 使用 JDK 5.0 的注解(Annotation) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent ...
2.3.4. 值类型的集合 2.3.5. 双向关联 2.3.6. 使双向关联工作 2.4. 总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 ...
值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture) ...
1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture...
Hibernate 可以对类的属性或者方法进行注解。属性对应field类别,方法的 getXxx()对应property类别。 定义表 通过 @Table 为实体Bean指定对应数据库表,目录和schema的名字。 @Entity @Table(name="tbl_sky") ...
2.3.4. 值类型的集合 2.3.5. 双向关联 2.3.6. 使双向关联工作 2.4. 总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 ...
2.3.4. 值类型的集合 2.3.5. 双向关联 2.3.6. 使双向关联工作 2.4. 总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置...
5.2.3. 自定义值类型 5.3. SQL中引号包围的标识符 5.4. 其他元数据(Metadata) 5.4.1. 使用 XDoclet 标记 5.4.2. 使用 JDK 5.0 的注解(Annotation) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent ...
1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture) ...
值类型的集合 2.3.5. 双向关联 2.3.6. 使双向关联工作 2.4. 总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 ...
查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...
我们前面已经指出Oracle的Lob字段和一般类型的字段在操作上有一个明显的区别--那就是你必须首先通过Oracle的empty_blob()/empty_clob()初始化Lob字段,然后获取该字段的引用,通过这个引用更改其值。所以要完成对...
-- execution第一个星号代表任何返回类型,第二个星号代表com.sbz.service下的所有包,第三个星号代表所有方法,括号中的两个点代表任何参数--> <!-- (public * com.sbz.*.service.*.*(..))"/>--> <!-- ...
背景如果文本值存储在数据类型为CHAR(n)的 Oracle 列中,则数据库在将该值保存到列之前最多n字符。 后来,尝试使用 Hibernate 或 JPA 等框架搜索具有相同值的列失败,因为搜索词没有填充到n ,导致搜索词与列中存储...