hibernate三大查询所有对象

  • 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();



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值