首先搭建建构
引入jar包
创建实体类 Emp.java
public class Emp { private Integer empId;//员工ID private String empname; //员工姓名 public Integer getEmpId() { return empId; } public void setEmpId(Integer empId) { this.empId = empId; } public String getEmpname() { return empname; } public void setEmpname(String empname) { this.empname = empname; } }
配置大配置
oracle.jdbc.OracleDriver jdbc:oracle:thin:@localhost:1521:orcl scott 0123 true true org.hibernate.dialect.Oracle10gDialect update thread
配置 小配置
创建HibernateUtil工具类
public class HibernateUtil { private static final ThreadLocal sessionTL = new ThreadLocal(); private static Configuration configuration; // private static final SessionFactory sessionFactory; static{ try { configuration=new Configuration().configure(); sessionFactory=configuration.buildSessionFactory(); } catch (Exception e) { throw new ExceptionInInitializerError(e); } } public static Session getSession() { Session session = (Session)sessionTL.get(); if(session==null) { session = sessionFactory.openSession(); sessionTL.set(session); } return session; } public static void closeSession() { Session session = (Session)sessionTL.get(); sessionTL.set(null); session.close(); }}
搭建Dao
package dao;import java.io.Serializable;import util.HibernateUtil;public class Mydao { public Object get(Class clazz,Serializable id){ System.out.println("dao\t"+HibernateUtil.getSession()); Object result= HibernateUtil.getSession().load(clazz, id); return result; }}
biz层
public class Hibernatebiz { Mydao dao=new Mydao(); public Object get(Class clazz,Serializable id){ // Transaction tx = HibernateUtil.getSession().beginTransaction(); Object obj= dao.get(clazz, id); System.out.println("=============================================="); // tx.commit(); // HibernateUtil.closeSession(); return obj; }}
filter类
public class MyFilter implements Filter{ public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { Session session; Transaction tx=null; try { session=HibernateUtil.getSession(); tx=session.beginTransaction(); chain.doFilter(request, response); tx.commit(); } catch (Exception e) { e.printStackTrace(); tx.rollback(); } finally{ HibernateUtil.closeSession(); } }
最后编写测试类
public class H_01Test { @Test public void addTest(){ Hibernatebiz biz=new Hibernatebiz(); Object object = biz.get(Emp.class,1); Emp emp=(Emp)object; System.out.println(emp.getEmpname()); }}
结果: