OID查询

根据对象的OID主键进行检错

get方法

当get方法被调用的时候,就会立刻发出sql语句,并且返回的对象也是代理对象,使用get()和普通的单条查询没有多大区别,当查询不到的时候get()返回是null

load方法

当调用load()方法的时候会自动返回一个目标对象的代理对象,着这个对象中只储存了目标对象的id值,当调用除id以外的属性时候才会发出sql语句查询,当查询不到的时候就load()报错

对象导航查询

根据一个已经查到的对象,获得其关联的对象的一种查询方式,先查询到联系人,就可以通过联系人获取联系人所关联的客户对象

HQL

Hibernate Query LAnguage,hibernate的查询语言
是一种面向对象方式的查询语言,语法类似sql.
通过session.createQuery(),用于接收一个HQL进行查询
分为
简单查询,别名查询,排序查询,条件查询,投影查询,分页查询,统计查询,多表查询
@Test
public void test2(){
Session session=HibernateUtil.openSession();
//简单查询
//Query query = session.createQuery("from User ");
// List<User>list = query.list();
//排序
Query query = session.createQuery("from User order by user_id desc");
List<User>list = query.list();
System.out.println(list);
}

qbc

query by criteria条件查询,是一种更加面向对象化的查询方式
@Test
public void test() {
//简单查询,已经过时
Session session = HibernateUtil.openSession();
Criteria criteria=session.createCriteria(User.class);
//添加排序
criteria.addOrder(Order.desc("user_id"));
//limit分页
criteria.setFirstResult(2);//角标是从0开始的
criteria.setMaxResults(2);//每页的数据数量
List<User>list =criteria.list();
System.out.println(list);
}
//条件查询
@Test
public void test2(){
Session session=HibernateUtil.openSession();
//qbc查询
Criteria criteria = session.createCriteria(User.class);
//添加条件
criteria.add(Restrictions.eq("user_code","user1"));
//多条件
criteria.add(Restrictions.like("user_name","u%"));
//查询
List<User>list=criteria.list();
for (User user:list){
System.out.println(user);
}
}
@Test
public void test3(){
Session session=HibernateUtil.openSession();
//qbc查询
Criteria criteria = session.createCriteria(User.class);
//统计查询
//setPorjection设置聚合函数
criteria.setProjection(Projections.rowCount());
Object o=criteria.uniqueResult();
System.out.println(o);
}
@Test
public void test4(){//离线查询
//可以在session之前就进行设置
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
//设置条件
detachedCriteria.add(Restrictions.like("user_name","u%"));
Session session=HibernateUtil.openSession();
Criteria executableCriteria = detachedCriteria.getExecutableCriteria(session);
List list = executableCriteria.list();
System.out.println(list);
}

Last modification:April 24, 2022
如果觉得我的文章对你有用,请随意赞赏