Hibernate的查询功能
1.Query对象
1.使用Query对象,不需要写sql语句,但是写hql语句
(1)hql:hibernate query language,提供查询语言,这个hql语言和普通sql语句相似
(2)使用sql操作表和表字段
使用hql操作类与属性
代码演示:
public class HibernateQueryDemo {
//Query对象
@Test
public void testQuery() {
SessionFactory sf=null;
Session session=null;
Transaction tx=null;
try {
sf=HibernateUtils.getSessionFactory();
session=sf.openSession();
tx=session.beginTransaction();
//
Query query=session.createQuery("from User");//查询语句为from加类名
List<User> list=query.list();
for (User user : list) {
System.out.println(user);
}
//
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally {
session.close();
sf.close();
}
}
}
2.Criteria象
@Test
public void testQuery() {
SessionFactory sf=null;
Session session=null;
Transaction tx=null;
try {
sf=HibernateUtils.getSessionFactory();
session=sf.openSession();
tx=session.beginTransaction();
//
Criteria criteria = session.createCriteria(User.class);
List<User> list=criteria.list();
for (User user : list) {
System.out.println(user);
}
//
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally {
session.close();
sf.close();
}
}
3.SQLQuery对象
调用底层sql语句
@Test
public void testQuery() {
SessionFactory sf=null;
Session session=null;
Transaction tx=null;
try {
sf=HibernateUtils.getSessionFactory();
session=sf.openSession();
tx=session.beginTransaction();
//
// SQLQuery sqlQuery=session.createSQLQuery("select * from t_user");
// List<Object[]> list=sqlQuery.list();//返回的是数组的形式
// for (Object[] object : list) {
// System.out.println(Arrays.toString(object));
// }
//
SQLQuery sqlQuery=session.createSQLQuery("select * from t_user");
sqlQuery.addEntity(User.class);
List<User> list=sqlQuery.list();//返回User对象
for (User user : list) {
System.out.println(user);
}
//
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally {
session.close();
sf.close();
}
Utils模板
package com.littlepage.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class HibernateUtils {
private static Configuration cf;
private static SessionFactory sf;
static {
cf = new Configuration().configure();
sf = cf.buildSessionFactory();
}
public static SessionFactory getSessionFactory() {
return sf;
}
public static void main(String[] args) { }
public static Session getSessionObject() {
return sf.getCurrentSession();
}
}
事务模板
import java.util.Arrays;
import java.util.List; import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.junit.Test; public class HibernateQueryDemo {
//Query对象
@Test
public void testQuery() {
SessionFactory sf=null;
Session session=null;
Transaction tx=null;
try {
sf=HibernateUtils.getSessionFactory();
session=sf.openSession();
tx=session.beginTransaction();
//
// 事务内容
//
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally {
session.close();
sf.close();
}
}
}
Hibernate的查询功能的更多相关文章
- 转: Hibernate HQL查询 插入 更新(update)实例
1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...
- Hibernate 检索查询的几种方式(HQL,QBC,本地SQL,集成Spring等)
1.非集成Spring hibernate的检索方式,主要有以下五种. 1.导航对象图检索方式.(根据已经加载的对象,导航到其他对象.) 2.OID检索方式.(按照对象的OID来检索对象.) 3.HQ ...
- 第六讲(二) Hibernate HQL查询
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibe ...
- Hibernate HQL查询:
Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...
- Hibernate HQL查询语句总结
Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...
- Hibernate的查询,二级缓存,连接池
Hibernate的查询,二级缓存,连接池 1.Hibernate查询数据 Hibernate中的查询方法有5中: 1.1.Get/Load主键查询 使用get或者load方法来查询,两者之间的区别在 ...
- Hibernate【查询、连接池、逆向工程】
前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式....到目前为止,我们都是使用一些简单的主键查询阿...使用HQL查询所有的数据....本博文主要讲解Hiberna ...
- Hibernate HQL查询 插入 更新(update)实例
1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...
- 用Java实现异构数据库的高效通用分页查询功能
不同数据库的分页查询语句有着较大区别,其中MySQL数据的limit offset语法最为简单,而SQL Server数据库和Oracle数据库的分页就比较复杂了. 网上常见的SQL Server和O ...
随机推荐
- Java常考面试题(一)
https://blog.csdn.net/linzhiqiang0316/article/details/80473906
- 每日linux命令学习-xargs命令
xargs命令 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据 ...
- java日志
http://blog.csdn.net/u013628152/article/details/43538299 http://blog.csdn.net/isea533/article/detail ...
- JavaScript笔记 #06# Promise简单例子
索引 回调版本 Promise版本1 Promise版本2 Notes 参考资料: Promise JavaScript Promise:简介 你去书店借书,按照异步的套路,剧情如下↓ 你:“老板,有 ...
- NGINX转发代理情况下,获取客户单真实IP
编译时加上http_realip_module 模块 realip模块生效的前提是:直接连接nginx的ip是在set_real_ip_from中指定的. 原机配置: set_real_ip_from ...
- JDK JRE JVM的区别
Jdk[Java Development ToolKit]就是java开发工具箱, JDK是整个JAVA的核心,里边包含了jre,它除了包含jre之外还包含了一些javac的工具类,把java源文件编 ...
- 一个简单的购物金额结算(JAVA)
我编写的代码: import java.util.Scanner; public class ZuoYe01 { public static void main(String[] args) { // ...
- linux判断日志文件大小进行清理
脚本写了一个死循环,根据nohup产生的日志多大, 这里表示日志超过500M之后清理, 具体数字可自定义 睡眠数可自定义 #!/usr/bin/bash while true do s=`du -k ...
- bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- 【Python020--内嵌函数和闭包】
一.内嵌函数&闭包 1.最好是访问全局变量而不是修改全局变量,修改全局变量Python会内部屏蔽(修改后,函数会内部创建一个和全局变量一抹一样的变量) >>> count = ...