博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenSessionInView模式
阅读量:6924 次
发布时间:2019-06-27

本文共 3777 字,大约阅读时间需要 12 分钟。

首先搭建建构

引入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());            }}

结果:

 

转载于:https://www.cnblogs.com/Smile-123/p/5839592.html

你可能感兴趣的文章
HDU5509 : Pattern String
查看>>
用C#调用C++DLL(x64),总是提示找不到DLL
查看>>
openssl evp 哈希算法(md5,sha1,sha256)
查看>>
Logistic 分类器与 softmax分类器
查看>>
mysql解决datetime与timestamp精确到毫秒的问题
查看>>
通过profile 用maven命令打不同配置的变量包
查看>>
Oracle trunc()函数的用法
查看>>
SQL中的left outer join,inner join,right outer join用法详解
查看>>
【SpringBoot】SpringBoot 入门示例
查看>>
Python 3.5 RuntimeError: can't start new thread
查看>>
利用ssh传输文件
查看>>
CentOS最常用命令及快捷键整理
查看>>
静态编译与动态编译的区别
查看>>
常用变量命名规则
查看>>
第一百四十六节,JavaScript,百度分享保持居中--下拉菜单
查看>>
mybatis 3.2.*打印sql结果集
查看>>
level 6 - unit4 - 强调句
查看>>
7 Django系列之关于bootstrap-table插件的简单使用
查看>>
关于window.event.srcElement 和 window.event.target(触发事件的对象)
查看>>
模板 倍增维护RMQ
查看>>