// user=(User) session.load(User.class, 5);
// System.out.println("*********************分割线************");
// System.out.println("用户姓名是:"+user.getUserName());
//get和load查询区别?load在查询不到数据时返回ObjectNotFound异常
//get返回空指针异常
//相同点:都支持一级缓存,都是按照id在进行查询动作
// User user=(User) session.get(User.class, 15);
// System.out.println(user.getUserName());
User user2=(User) session.load(User.class, 15);
System.out.println(user2.getUserName());
} catch (Exception e) {
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
}
list查询和iterator查询对比
| //list查询和iterator查询对比 private void compListAndIterat() { Session session=null; try { session = HibernateSessionFactory.getSession(); String sql="from User user"; Query query=session.createQuery(sql);
//查询分页方法 //0代表第一条记录的索引号 query.setFirstResult(0); //3表示页大小 query.setMaxResults(3); //iterator方式查询 // Iterator iter= query.iterate(); // while (iter.hasNext()) { // User user = (User) iter.next(); // System.out.println("用户名是:"+user.getUserName()); // }
//list方式查询 List
for(User user:list){ System.out.println("用户名:"+user.getUserName()); }
} catch (Exception e) { e.printStackTrace(); }finally{ HibernateSessionFactory.closeSession(); } } |
二级缓存测试
| /** * 二级缓存 */ public void secondCachTest(){ Session session=null; try { //二级缓存及管理测试 // session=HibernateSessionFactory.getSession(); // User user= (User) session.load(User.class,3); // System.out.println("用户名是:"+user.getUserName()); // session.close(); // // //清空二级缓存中的数据 // SessionFactory sessionFactory=HibernateSessionFactory.getSessionFactory(); // sessionFactory.evict(User.class,3); // // // System.out.println("**************我是分割线*******************"); // session=HibernateSessionFactory.getSession(); // user=(User)session.load(User.class, 3); // System.out.println("用户名是:"+user.getUserName()); // session.close();
//一级缓存和二级缓存交互测试 session = HibernateSessionFactory.getSession(); session.setCacheMode(CacheMode.GET); User user=(User) session.load(User.class, 3); System.out.println("用户名是:"+user.getUserName()); session.close();
System.out.println("*****我是分割线****"); System.out.println("用户名是:"+user.getUserName());
session = HibernateSessionFactory.getSession(); session.setCacheMode(CacheMode.GET); user=(User) session.load(User.class, 3); System.out.println("用户名是:"+user.getUserName()); session.close();
} catch (Exception e) { e.printStackTrace(); } } |
测试
| public static void main(String[] args) { UserOperDAO dao=new UserOperDAO(); //增加 // User user = new User(); // user.setUserName("范围"); // dao.add(user);
//修改 // User user1=new User(); // //删除时必须给删除对象的主键赋值 // user1.setUserId(2); // dao.delUser(user1);
//修改 // User user2=new User(); // user2.setUserId(5); // user2.setUserName("jack"); // dao.updateUser(user2);
//查询 // List
// for (User user : list) { // System.out.println("用户名称是:"+user.getUserName()); // }
// //延迟加载测试 // dao.lazyTest();
//缓存测试 // dao.cachTest();
//iteator和list集合比较 // dao.compListAndIterat();
//二级缓存测试 dao.secondCachTest(); } |
二级缓存配置
| Ehcache.xml(放在src目录下) |
|
下一篇
Struts2入门示例教程
|