该类是对JDBC中Connection对象的封装

在spring中需要通过TransactionSynchronizationManager.getResourceMap静态方法获取,其中关于代码中ds那个参数可参考PlatformTransactionManager

// key是DataSource实例,value是ConnectionHolder
// 调用这个静态方法获取ConnectionHolder
Map<Object, Object> resourceMap = TransactionSynchronizationManager.getResourceMap();
// ds是当前线程的DataSource实例,需要我们自己想办法传递进来
ConnectionHolder connectionHolder = (ConnectionHolder) resourceMap.get(ds);
// 通过ConnectionHolder当前数据库连接
Connection conn = connectionHolder.getConnection();

由于上述代码最终实现是ThreadLocal,所以可以在任何线程中获取当前线程的数据库连接

Spring-jdbc-ConnectionHolder相关推荐

  1. mybatis和spring jdbc持久层框架事务支持分析

    mybatis和spring jdbc持久层框架事务支持分析 ​ 持久层框架中的事务支持指的是持久层框架如何支持数据库事务,我们先梳理出原生数据库事务操作的主线脉络,它是通过java.sql 包下的C ...

  2. Struts2+spring+jdbc 以xml配置形式整合

    今天做作业,练习一下Struts2+spring+jdbc 以xml配置形式整合 整合步骤: 工程结构图: 重要配置文件 web.xml <?xml version="1.0" ...

  3. Java EE---通过Spring JDBC实现数据库的增、删、改、查

    Spring JDBC之update.query方法 1.项目清单 2.全部代码 2.1.student 2.2.stuDao 2.3.applicationContext.xml 2.4.test ...

  4. Spring JDBC详解

    <Spring JDBC详解> 本文旨在讲述Spring JDBC模块的用法.Spring JDBC模块是Spring框架的基础模块之一. 一.概述 在Spring JDBC模块中,所有的 ...

  5. Spring JDBC Template

    Spring为我们提供了JDBC的模板来连接数据库,Spring JDBC Template. 使用: 第一,导入相关的jar包 第二,要连接数据库首先要加载驱动,获得连接,然后才能进行相关的数据库操 ...

  6. 使用Spring JDBC框架连接并操作数据库

    在前一篇博文JAVA通过JDBC连接并操作MySQL数据库中,我们知道如何通过JDBC连接并操作数据库,但是请看程序,整个程序连接数据库和关闭数据库占了很大一部分代码量,而且每次我们执行一下数据库操作 ...

  7. Spring + JDBC + Struts联合开发(实现单表的CRUD)

    这里使用Spring + JDBC +Struts,完成新闻表的添加,修改,删除和查询功能. 建立数据库: [sql] view plain copy CREATE TABLE news_type ( ...

  8. Spring4.X系列之Spring JDBC

    专栏 导读 源码 专栏 欢迎关注 : Spring-JDBC手札 导读 Spring JDBC-Spring对DAO的支持 Apache-DBCP数据库连接池解读 C3P0-数据库连接池解读 Spri ...

  9. Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据

    概述 如何获取本地数据连接 示例从DBCP数据源中获取Oracle的本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型的数据 以块数据的方式读取LOB数据 以流数据 ...

  10. Spring JDBC-使用Spring JDBC访问数据库

    概述 使用Spring JDBC 基本的数据操作 更改数据 返回数据库表的自增主键值 批量更改数据 查询数据 使用RowCallbackHandler处理结果集 使用RowMapperT处理结果集 R ...

最新文章

  1. Spring MVC中DispatcherServlet理解总结(1)
  2. python【接上篇】
  3. Android实现点击事件的4种方式
  4. 首次使用Cesium加载3D数据成功
  5. Netflix选择AVIF作为下一代图片压缩技术
  6. qml-创建可移动的模态弹出框
  7. 【Python】File(文件)方法
  8. BigDecimal加减乘除
  9. Java线程并发与安全性问题详解
  10. github协同工作流程(一)
  11. FFmpeg进阶:给视频添加文字水印
  12. java微信获取临时素材_java实现微信获取/下载临时素材
  13. mysql help_深入理解mysql帮助命令(help)
  14. ImportError: cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad的解决方法(简单粗暴)
  15. java cursor_cursor的基本使用方法
  16. AES加密 + Base64编码
  17. 队列的应用--火车车厢重排列
  18. 广东计算机二级考试大纲,全国计算机等级考试大纲(二级)
  19. Unresolved reference ‘sklearn‘问题|scikit-learn包安装
  20. 2016云栖大会即将开幕,阿里聚安全邀您共同见证盛典

热门文章

  1. MySQL安装过程中出现的vcruntime140.dll缺失
  2. require mysql.php_require和include经典一例抛析_php
  3. php中ini set,php ini_set函数的用法
  4. flink 三种时间机制_Flink时间系列:Event Time下如何处理迟到数据
  5. Oracle触发器6-管理触发器
  6. sysbench mysql 测试_sysbench MySQL测试例子
  7. PHP使用weui,微信小程序WeUI引入
  8. 运行MYSQL数据库命令时connetion Timeout expired异常问题
  9. 输出正反等腰三角形(菱形)
  10. php获取li或者a标签中间的文字