博客
关于我
OpenSessionInView模式
阅读量:792 次
发布时间:2023-02-24

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

Emp.java

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

Hibernate????

oracle.jdbc.OracleDriver
jdbc:oracle:thin:@localhost:1521:orcl
scott
0123
true
true
org.hibernate.dialect.Oracle10gDialect
update
thread

Emp?????

HibernateUtil.java

public class HibernateUtil {
private static final ThreadLocal sessionTL = new ThreadLocal();
private static Configuration configuration;
private static 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();
}
}

MyDao.java

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;
}
}

HibernateBiz.java

public class HibernateBiz {
MyDao dao = new MyDao();
public Object get(Class clazz, Serializable id) {
Object obj = dao.get(clazz, id);
System.out.println("==============================================");
return obj;
}
}

MyFilter.java

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

转载地址:http://mcpfk.baihongyu.com/

你可能感兴趣的文章
Openlayers:DMS-DD坐标形式互相转换
查看>>
openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
查看>>
OpenLDAP(2.4.3x)服务器搭建及配置说明
查看>>
OpenLDAP编译安装及配置
查看>>
Openmax IL (二)Android多媒体编解码Component
查看>>
OpenMCU(一):STM32F407 FreeRTOS移植
查看>>
OpenMCU(三):STM32F103 FreeRTOS移植
查看>>
OpenMCU(三):STM32F103 FreeRTOS移植
查看>>
OpenMCU(二):GD32E23xx FreeRTOS移植
查看>>
OpenMCU(五):STM32F103时钟树初始化分析
查看>>
OpenMCU(四):STM32F103启动汇编代码分析
查看>>
OpenMetadata 命令执行漏洞复现(CVE-2024-28255)
查看>>
OpenMMLab | AI玩家已上线!和InternLM解锁“谁是卧底”新玩法
查看>>
OpenMMLab | S4模型详解:应对长序列建模的有效方法
查看>>
OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
查看>>
OpenMMLab | 不是吧?这么好用的开源标注工具,竟然还有人不知道…
查看>>
OpenMMLab | 如何解决大模型长距离依赖问题?HiPPO 技术深度解析
查看>>
OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
查看>>
OpenMP 线程互斥锁
查看>>
OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>