java 从零开始,学习笔记之基础入门(Hibernate_实战演练)(三十七)(二)

2014-11-24 02:45:24 · 作者: · 浏览: 5
---二次查询");

// 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 list= query.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 list=dao.getAllUser();

// for (User user : list) {

// System.out.println("用户名称是:"+user.getUserName());

// }

// //延迟加载测试

// dao.lazyTest();

//缓存测试

// dao.cachTest();

//iteator和list集合比较

// dao.compListAndIterat();

//二级缓存测试

dao.secondCachTest();

}

二级缓存配置

Ehcache.xml(放在src目录下)