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

2014-11-24 02:45:24 · 作者: · 浏览: 8
ession.createQuery(sql);

list=query.list();

System.out.println("获得结果集");

for (User u : list) {

System.out.println("用户名是:"+u.getUserName());

}

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

}

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());

// }

}

延迟加载

/**

* 延迟加载

*

*/

public void lazyTest(){

Session session=null;

try {

session=HibernateSessionFactory.getSession();

User user=(User) session.load(User.class, 5);

System.out.println("用户id是:"+user.getUserId());

System.out.println("*********************分割线************");

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

} catch (Exception e) {

e.printStackTrace();

}finally{

HibernateSessionFactory.closeSession();

}

}

缓存事例

/**

* 缓存事例

*/

public void cachTest(){

//一级缓存

Session session=null;

try {

session=HibernateSessionFactory.getSession();

// User user=(User) session.load(User.class, 5);

// System.out.println("用户id是:"+user.getUserId());

// System.out.println("*********************分割线************");

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

// //一级缓存和session生命周期一致的缓存

// //clear是将所有的一级缓存中的数据清空掉

// //session.clear();

//

// //evict将指定的对象从一级缓存中清除掉

// session.evict(user);

// System.out.println("-----------二次查询");

// 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.