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

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

猜你喜欢

转载自blog.csdn.net/yan12422/article/details/78376372