14_Query对象查询所有记录
Query对象
1 使用query对象,不需要写sql语句,但是写hql语句
(1)hql:hibernate query language,hibernate提供查询语言,这个hql语句和普通sql语句很相似
(2)hql和sql语句区别:
- 使用sql操作表和表字段
- 使用hql操作实体类和属性
2 查询所有hql语句:
(1)from 实体类名称
3 Query对象使用
(1)创建Query对象
(2)调用query对象里面的方法得到结果
package com.hlg.hibernatetest;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.junit.Test;
import com.hlg.entity.User;
import com.hlg.utils.HibernateUtils;
public class HibernateQueryData {
@Test
public void testQuery(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建Query对象
Query query = session.createQuery("from User");
List<User> list = query.list();
for(User user:list){
System.out.println(user);
}
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
}
Criteria对象
1 使用这个对象查询操作,但是使用这个对象时候,不需要写语句,直接调用方法实现
2 实现过程
(1)创建criteria对象
( 2 )调用对象里面的方法得到结果
@Test
public void testCriteria(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建Criteria对象
Criteria criteria = session.createCriteria(User.class);
List<User> list = criteria.list();
for (User user : list) {
System.out.println(user);
}
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
16_SQLQuery对象查询所有记录
package com.hlg.hibernatetest;
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;
import com.hlg.entity.User;
import com.hlg.utils.HibernateUtils;
public class HibernateQueryData {
@Test
public void testQuery(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建Query对象
Query query = session.createQuery("from User");
List<User> list = query.list();
for(User user:list){
System.out.println(user);
}
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
@Test
public void testCriteria(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建Criteria对象
Criteria criteria = session.createCriteria(User.class);
List<User> list = criteria.list();
for (User user : list) {
System.out.println(user);
}
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
@Test
public void testSQLQuery(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建对象
//参数是普通的sql语句
SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
//返回List集合 ,默认每部分是数组结构
List<Object[]> list = sqlQuery.list();
for (Object[] objects : list) {
//Arrays.toString() 让数组以字符串形式输出
System.out.println(Arrays.toString(objects));
}
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
}
返回list中每部分是对象形式
//1 创建对象
//参数是普通的sql语句
SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
//返回List集合 的每部分是对象形式
sqlQuery.addEntity(User.class);
//
List<User> list = sqlQuery.list();
for (User user : list) {
System.out.println(user);
}
package com.hlg.hibernatetest;
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;
import com.hlg.entity.User;
import com.hlg.utils.HibernateUtils;
public class HibernateQueryData {
@Test
public void testQuery(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建Query对象
Query query = session.createQuery("from User");
List<User> list = query.list();
for(User user:list){
System.out.println(user);
}
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
@Test
public void testCriteria(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建Criteria对象
Criteria criteria = session.createCriteria(User.class);
List<User> list = criteria.list();
for (User user : list) {
System.out.println(user);
}
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
@Test
public void testSQLQuery(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
//1 创建对象
//参数是普通的sql语句
SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
//返回List集合 的每部分是对象形式
sqlQuery.addEntity(User.class);
//
List<User> list = sqlQuery.list();
for (User user : list) {
System.out.println(user);
}
// List<Object[]> list = sqlQuery.list();
//
// for (Object[] objects : list) {
// //Arrays.toString() 让数组以字符串形式输出
// System.out.println(Arrays.toString(objects));
// }
//提交事务
tx.commit();
}catch(Exception e){
//回滚事务
tx.rollback();
}finally{
//关闭
session.close();
sessionFactory.close();
}
}
}