Hibernate是DAO层技术,其查询技术非常强大,支持原始的SQL语句查询,支持QBC查询以及Hibernate特有的SQL查询.
QBC Query By Criteria 标准查询,一种比Hibernate中SQl语句更为面向对象的查询方法.
与之前相比,Hibernate的SQl语句与数据库中的SQL非常相似.但是Hibernate中的SQL语句是面向对象的查询语言,而数据库中的SQL是面向二维表的,在Hibernate的查询语句中使用的是类名与属性名,而数据库的中SQL语句使用的是表名与字段名.
string hql = "from User where age > ?";
Quer接口
在Hibernate中进行SQl查询,支持动态绑定参数的功能,使用Session对象中的createQuery 获取Query对象
Query query = session.createQuery(hql);
实例代码
实体类
public class User {
private Integer u_id;//主键
private String u_name;
private Integer u_age;
public Integer getU_id() {
return u_id;
}
public void setU_id(Integer u_id) {
this.u_id = u_id;
}
public String getU_name() {
return u_name;
}
public void setU_name(String u_name) {
this.u_name = u_name;
}
public Integer getU_age() {
return u_age;
}
public void setU_age(Integer u_age) {
this.u_age = u_age;
}
public User(String u_name, Integer u_age) {
super();
this.u_name = u_name;
this.u_age = u_age;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "User [u_id=" + u_id + ", u_name=" + u_name + ", u_age=" + u_age
+ "]";
}
}
测试类
public class TestCreate {
//HQL:Hibernate Sql
@Test
public void testSelect1(){
//1.新建配置对象
Configuration cfg=new Configuration();
//2.自动加载主配置文件
cfg.configure();
//3.开启session工厂
SessionFactory sf=cfg.buildSessionFactory();
Session session=sf.openSession();
//HQL
/*List<User> list=session.createQuery("from User").list();
for (User user : list) {
System.out.println(user);
}*/
/***************************************************/
//查询一张表中的某个字段
//List list=session.createQuery("select u_name from User").list();
/***************************************************/
//按条件查询
//Query q=session.createQuery("from User where u_id=:id");
//q.setParameter("id", 1);
//保证唯一
//User u=(User) q.uniqueResult();
//System.out.println(u);
/***************************************************/
//分页
Query q=session.createQuery("from User");
q.setFirstResult(0);//起始位置
q.setMaxResults(5);//一次展示多少条
List list=q.list();//把查询到的结果放入list集合
System.out.println(list);//遍历并且输出集合
}
}