您的位置:首页 > 数据库

hibernate三大查询所有对象

2017-06-09 17:05 357 查看


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)调用其中的方法
package com.sq.test;

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.sq.entity.User;
import com.sq.util.HibernateUtil;

/**
*@author sq
*
*/
public class QueryDemo {
@Test
public void testQuery(){
SessionFactory sessionFactory= null;
Session session = null;
Transaction tx = null;
try {
//1.调用工具类获得sessionfactory
sessionFactory = HibernateUtil.getSessionFactory();
//2.获取session
session = HibernateUtil.getSession();
//3.开启事物
tx = session.beginTransaction();

//1.创建Query对象
//方法里面写hql语句
Query query = session.createQuery("from User");
//2.调用其中的方法得到结果
List<User> list = query.list();

for(User user : list){
System.out.println(user);
}

//提交事物
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
//关闭
sessionFactory.close();
}
}
}


Criteria对象

1.使用这个对象查询操作,但是使用这个对象不需要写语句,直接调用方法实现

2.实现过程

(1)创建Criteria对象
(2)调用里面的方法来实现
//1.创建Criteria对象
Criteria criteria = session.createCriteria(User.class);
//2.调用里面的方法得到结果
List<User> list = criteria.list();
for(User user : list){
System.out.println(user);
}


SQLQuery对象

1.使用hibernate时候,调用底层sql语句

2.实现过程

(1)创建SQLQuery对象
(2)调用里面的方法来实现
//1.创建SQLQuery对象
SQLQuery sqlquery = session.createSQLQuery("select * from s_user");
//2.调用里面的方法得到结果
//返回的list集合,默认里面每部分数组结构
List<Object[]> list = sqlquery.list();
for(Object[] objects : list){
System.out.println(Arrays.toString(objects));
}
   (3)如果想要得到对象集合
SQLQuery query = session.createSQLQuery("select * from s_user");
query.addEntity(User.class);
List<User> list = query.list();
for(User object:list){
System.out.println(object);
}
tx.commit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hql sql hibernate 查询