Session管理
2016-05-23 16:56
288 查看
一个应用的结构通常是
一个请求就是一个事务,所以不能在dao中打开、关闭session,否则多个dao对应的就不是同一个事务。
模拟session管理,将session放在过滤器中处理:
class TxFilter implements Filter{
puboic void doFilter(request, response, chain){
session = sf.openSession();
Utils.threadLocal.set(session); // 绑定到当前线程上
try{
tx = session.beginTransaction();
chain.doFitler(); // 放行
tx.commit();
}catch(e){
tx.rollback();
throw e;
}finallay{
session.close();
Utils.threadLocal.remove(); // 移除
}
}
}
class UserDao{
public void saveUser(User user){
session = Utils.threadLocal.get();
session.save(user);
}
}
public class Utils {
public static ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
}
一个请求就是一个事务,所以不能在dao中打开、关闭session,否则多个dao对应的就不是同一个事务。
模拟session管理,将session放在过滤器中处理:
class TxFilter implements Filter{
puboic void doFilter(request, response, chain){
session = sf.openSession();
Utils.threadLocal.set(session); // 绑定到当前线程上
try{
tx = session.beginTransaction();
chain.doFitler(); // 放行
tx.commit();
}catch(e){
tx.rollback();
throw e;
}finallay{
session.close();
Utils.threadLocal.remove(); // 移除
}
}
}
class UserDao{
public void saveUser(User user){
session = Utils.threadLocal.get();
session.save(user);
}
}
public class Utils {
public static ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
}
相关文章推荐
- 第二章 使用ArcGIS Engine控件编程
- 自适应网页里,字体大小如何自适应屏幕
- 环信IM集成 —— 聊天界面URL颜色展示
- 如何查看 JAR 包的源代码
- POJ 2349 Arctic Network【中文版题目】【最小生成树+思维】
- Shell 命令 find 的常见用法
- ViewPager实现轮播广告栏(BannerPager)
- VS快捷键大全
- Java面向对象编程 第一章 面向对象开发方法概述
- ArchLinux折腾记
- Mac 上使用Wireshark 抓包
- 以SP方式存储用户名
- redis on windows
- angularjs 实现国际化
- Java网络编程基础(四)---基于TCP的简单聊天系统
- ServletConfig对象
- 随机森林、EM、HMM、LDA
- window.location
- ASP.NET将文件写到另一服务器
- Java面向对象 第一章 面向对象开发方法概述