hibernate之HQL语句编写(用于多表查询,单不复杂时使用)

package Bean;


import java.util.List;


import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import common.HibernateUitels;


public class TestHQL {
@Test
public void TestSelect() {
//获得session
Session session=HibernateUitels.getSession();
//控制事物
Transaction tx = session.beginTransaction();
//--------------------------------

//
String HQL="from Student";//查询所有Student对象
Query query = session.createQuery(HQL);
List<Student> list=query.list();//返回list结果
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i).getName());
}
System.out.println(list);
//query.uniqueResult();//接收唯一的查询结果
//--------------------------------
tx.commit();
session.close();
}

@Test
public void TestGet() {
//获得session
Session session=HibernateUitels.getSession();
//控制事物
Transaction tx = session.beginTransaction();
//--------------------------------

//
String HQL="from Student where id=1";//查询所有Student对象
Query query = session.createQuery(HQL);

Student student=(Student) query.uniqueResult();//接收唯一的查询结果Student,和列名对应的都是类里面的
System.out.println(student.getName());
//--------------------------------
tx.commit();
session.close();
}

@Test
//问号占位符的时候
public void TestGet1() {
//获得session
Session session=HibernateUitels.getSession();
//控制事物
Transaction tx = session.beginTransaction();
//--------------------------------

//
String HQL="from Student where id=?";//查询所有Student对象,
Query query = session.createQuery(HQL);
//query.setInteger(0,5);
query.setParameter(0,5);//自动匹配类型
Student student=(Student) query.uniqueResult();//接收唯一的查询结果
System.out.println(student.getName());
//--------------------------------
tx.commit();
session.close();
}

@Test
//命名占位符的时候
public void TestGet2() {
//获得session
Session session=HibernateUitels.getSession();
//控制事物
Transaction tx = session.beginTransaction();
//--------------------------------

//
String HQL="from Student where id= :id";//:是固定写法,里面是我们气的名字
Query query = session.createQuery(HQL);
//这里就不用输问号是第几个了,直接给我们起的这个名字赋值就可以
query.setParameter("id",5);
Student student=(Student) query.uniqueResult();//接收唯一的查询结果
System.out.println(student.getName());
//--------------------------------
tx.commit();
session.close();
}

@Test
//分页查询
public void TestGet3() {
//获得session
Session session=HibernateUitels.getSession();
//控制事物
Transaction tx = session.beginTransaction();
//--------------------------------

//
String HQL="from Student";//:是固定写法,里面是我们气的名字
Query query = session.createQuery(HQL);
//设置分页查询limit ?,?
query.setFirstResult(0);//从那个位置开始
query.setMaxResults(10);//每页显示多少条
List<Student> list=query.list();
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i).getName());}

//--------------------------------
tx.commit();

session.close();
}
}

如果你喜欢,或者有帮助到你的地方可以关注我的微信公众号,田园折耳,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值