Hibernate_实战演练
使用HibernateSessionFactory得到session实现CRUD
| UserOperDAO.java |
| package com.ibm.dao;
import java.util.Iterator; import java.util.List;
import org.hibernate.CacheMode; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction;
import com.ibm.factory.HibernateSessionFactory; import com.ibm.pojo.User;
public class UserOperDAO { public void add(User user){ //定义sessiontran变量 Session session=null; Transaction tran=null; try { //获得session开启事务(涉及数据修改操作时都需要开启事务) session=HibernateSessionFactory.getSession(); tran=session.beginTransaction(); session.save(user);
//提交事务数据入库 tran.commit();
} catch (Exception e) { //事务回滚 tran.rollback(); }finally{ //关闭session HibernateSessionFactory.closeSession(); } }
/** * 按照用户id删除用户 * @param user */
public void delUser(User user){ Session session= null; Transaction tran=null; try {
session=HibernateSessionFactory.getSession(); tran=session.beginTransaction();
session.delete(user); tran.commit(); } catch (Exception e) { tran.rollback(); }finally{ HibernateSessionFactory.closeSession(); } }
/** * 修改用户 * @param user */ public void updateUser(User user){
Session session= null; Transaction tran=null; try {
session=HibernateSessionFactory.getSession(); tran=session.beginTransaction();
session.update(user); tran.commit(); } catch (Exception e) { e.printStackTrace(); tran.rollback(); }finally{ HibernateSessionFactory.closeSession(); }
}
/** * 获得用户信息列表 * @return list */ public List
List
Session session=null; try { session=HibernateSessionFactory.getSession(); String sql="from User user"; Query query=session.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
// 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("-------- |