浅谈DBUtils 中ThreadLocal

本文探讨了如何利用ThreadLocal实现线程安全且高效的数据库连接管理。ThreadLocal为每个线程创建独立的副本,减少了资源消耗,类似于购买一份资料后进行多次复制。在数据库事务处理中,一个事务包含多个DML操作,ThreadLocal能确保每个线程拥有自己的事务副本,保证操作的原子性和一致性。了解更多详情,请参考相关文章。
摘要由CSDN通过智能技术生成

如果既要保证数据安全,又要保证性能,可以考虑ThreadLocal(线程本地变量)

ThreadLocal:可为每个线程 创建一个副本。每个线程可以访问自己内部的副本。

即 new(创建)1次 ,ThreadLocal(复制) 多次

举个例子:就好比 CSDN有一份资料 卖100C币  ,有A、B、C三人要买 不用ThreadLocal 就一人买一份,共花300C币 

用了ThreadLocal,就是A买一份,然后拷贝粘贴出2份给B,C。只花100C币

 

对于数据库来说,一个连接 对应于 一个事务(是用户定义的一个数据库操作序列,这些操作要么全做,要不全不做。) , 一个事务可以包含多个DML(数据操纵语言)操作。

事务流程:开启事务(将自动提交→手工提交)→ 进行各种DML → 正常,将刚才所有DML全部提交

                                                                                                                   →失败(有异常),将刚才所有DML回滚

public class JDBCUtils {
private static ComboPooledDataSource ds = new ComboPooledDataSource();
private static ThreadLocal<Connection> tl=new Thr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值