首先搭建建构

引入jar包

创建实体类  Emp.java

public class Emp {private Integer empId;//员工IDprivate 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;}}

配置大配置

<hibernate-configuration><session-factory><!-- 1.连接数据库的语句 --><property name="connection.driver_class">oracle.jdbc.OracleDriver</property><property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><property name="connection.username">scott</property><property name="connection.password">0123</property><!-- 输出所有 SQL 语句到控制台。 --><property name="hibernate.show_sql">true</property> <!-- 在 log 和 console 中打印出更漂亮的 SQL。 --><property name="hibernate.format_sql">true</property><!-- 方言 --><property name="hibernate.dialect">    org.hibernate.dialect.Oracle10gDialect</property><!-- hbm2ddl --> <property name="hibernate.hbm2ddl.auto">update</property><!-- 支持getCurrentSession的 属性配置 --><property name="hibernate.current_session_context_class">thread</property><!-- 关联小配置 --><!-- <mapping resource="cn/happy/entity/Project.hbm.xml"/> --> <mapping resource="entity/Emp.hbm.xml"/></session-factory></hibernate-configuration>

配置  小配置

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="entity"><class name="Emp" table="Emp2"><id name="empId" column="EMPID"><generator class="native"></generator></id><property name="empname" type="string" column="empname"></property><!-- 多对多 --><!-- <set name="pros" table="ProEmp"><key column="nid"></key><many-to-many class="Project" column="pid"></many-to-many> </set>--></class></hibernate-mapping>

创建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 {@Testpublic 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

OpenSessionInView模式相关推荐

  1. 主题:Hibernate/Spring/Struts架构使用OpenSessionInView的问题

    今天有一个朋友问了我一个问题,他使用的是Hibernate/Spring/Struts架构,配置使用Spring的 OpenSessionInView Filter,但是发现不生效,lazy的集合属性 ...

  2. hibernate中load和get方法的区别 lazy的策略

    1  get不支持lazy   load支持lazy 2  采用get加载数据时,如果无匹配数据则返回null         load则报异常 --------------------------- ...

  3. open session and Hibernate事务处理机制

    相关文章: Hibernate入门 - Transaction 使用OpenSessionInView模式时的一个异常问题解决方法 推荐圈子: 青岛javaeye 更多相关推荐 在没有使用Spring ...

  4. hibernate lazy加载

    2019独角兽企业重金招聘Python工程师标准>>> HIBERNATE的持久化对象加载策略. 延迟加载, 也就是用到的时候才去加载.这样可以提高一些性能. Hibernate的l ...

  5. 注意Hibernate4在开发当中的一些改变

    2019独角兽企业重金招聘Python工程师标准>>> 注意Hibernate4在开发当中的一些改变 Hibernate4的改动较大只有spring3.1以上版本能够支持,Sprin ...

  6. hibernate 延迟加载的错误 failed to lazily initialize a collection of role

    这个问题一般出现在一对多的情况下,解决的方法有两种 1.设置lazy=false 如果是用annotation,则配置如下 @OneToMany(    targetEntity = CourseAu ...

  7. SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结

    http://jinnianshilongnian.iteye.com/blog/1423971 下载地址 一 开发环境 1.动态web工程 2.部分依赖 java代码: Java代码   hiber ...

  8. jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

    jpa jsf 我们创建了这篇文章,将展示如何使用以下工具创建完整的Web应用程序:Tomcat7,带有Primefaces的JSF2(Facelets和Libraries)(具有AutoComple ...

  9. 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

    我们创建了这篇文章,将展示如何使用以下工具创建完整的Web应用程序:Tomcat7,带有Primefaces的JSF2(Facelets和Libraries)(具有AutoComplete),JPA ...

最新文章

  1. 超高性能管线式HTTP请求(实践·原理·实现)
  2. Java数据结构与算法:红黑树
  3. html5 input required oninvalid,为什么我的“ oninvalid”属性会让模式失败?
  4. echarts力导向图节点连线动画_基于 HTML5 网络拓扑图的快速开发之入门篇(一)...
  5. BellmanFord
  6. Redis的诞生历程
  7. 全国计算机等级考试题库二级C操作题100套(第10套)
  8. OpenGL:编译glfw并配置
  9. 【20160924】GOCVHelper MFC增强算法(2)
  10. ffmpeg软硬件解码基础(总目录)
  11. warning:1071 (42000) Specified key was too long;max key length is 1000 bytes
  12. 【jQuery笔记Part1】10-jQuery操作html-获取设置
  13. LimeSDR系列产品介绍(一):板卡级(Board Level)产品
  14. BootStrap表格鼠标悬停颜色修改
  15. 最简单的方法更新黑苹果macOS教程
  16. flink DataStream returns 设置返回类型
  17. 浙大高分子物理郑强教授的激情演讲
  18. 在windows本地创建svn及遇到错误:svn create repository here 报错
  19. iOS开发者的苹果电脑MacBookPro硬盘满了该怎么办?不要只想着插个扩展sd卡!可以自己买个固态硬盘换上
  20. 大数据开源架构包括哪些?

热门文章

  1. 乱谈管理(优秀部门经理的职业素质)
  2. 3D人脸识别准确率提升,成未来发展趋势
  3. 学好人工智能,其实不难,从以下几点开始
  4. 人工智能和大数据的开发过程中需要注意这12点
  5. SAP 金属行业实施项目的GAP之Metall Balance
  6. 干货丨吴恩达深度学习课程的思维导图总结
  7. 利用numpy对已知样本点进行多项式拟合
  8. 大脑与数学——利用代数拓扑研究模拟大脑 第一部分
  9. 自我监督学习:AI技术的未来发展方向
  10. 2019年,中国要推进这70个工程项目