您的位置:首页 > 其它

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

2017-10-28 15:39 316 查看
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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: