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();
}
}
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();
}
}
相关文章推荐
- Hibernate使用hql语句查询
- Castle学习笔记----使用HQL语句实现复杂查询
- hibernate使用hql执行查询操作时,多出update语句
- 使用hibernate的hql语句做查询报错 org.hibernate.hql.internal.ast.QuerySyntaxException: user is not mapped
- hibernate如何使用hql语句查询时间区间段
- Hibernate书写原生SQL语句查询(用于复杂多表查询)
- Java Hibernate中使用HQL语句进行数据库查询的要点解析
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- hibernate里使用hql语句处理多表查询
- Eclipse使用hibernate进行HQL语句查询时,速度慢的原因之一
- hibernate如何使用hql语句查询时间区间段
- hibernate使用hql和sql查询总记录数语句
- hibernate 的hql查询语句中使用fetch的注意点
- 在hibernate中,对数据库的增删改操作以及HQL查询与QBC查询的语句的编写语法
- Hibernate(3)-使用HQL语句进行数据查询
- Hibernate中使用SQL处理复杂的查询语句(on calsue)
- 在hibernate中使用HQL语句和QBC两种方法进行查询
- hibernate使用查询语句hql
- 在hibernate中hql语句使用连接查询
- Hibernate查询时,使用HQL和SQL的区别(SUM语句)