ConnectionUtils

/**
* @date 2019/7/8 9:35
* 管理连接的工具类 用于实现连接和线程的绑定
* 保证当前线程获得的 Connection 是同一个
*/
@Component
public class ConnectionUtils {
private ThreadLocal<Connection> tl=new ThreadLocal<Connection>();
@Autowired
private DataSource dataSource;


public void setDataSource(DataSource dataSource){
this.dataSource = dataSource;
}
// 获得当前线程绑定的连接
public Connection getThreadConnction(){
try {
// 1 看线程是否绑了连接
Connection conn = tl.get();
if(conn==null) {
// 2从数据源获取一个连接
conn= dataSource.getConnection();
//3 和线程局部变量 绑定
tl.set(conn);
}
// 4 返回线程连接
return tl.get();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
// 把连接和当前线程进行解绑
public void remove(){
tl.remove();
}
}

转载于:https://www.cnblogs.com/dragonyl/p/11153270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值