Spring代码通过DBCP数据库连接池访问ms access数据库的探讨

  • 时间:
  • 浏览:7
  • 来源:神彩3D_彩神3D官方

正在做另有2个 升级项目project,project的意思就是全是application也全是platform,仅仅是另有2个 project而已。

项目的需求之一就是对于升级前的数据,保处于access的*.mdb中的数据,继续不需要 访问。

就是通过maven构建另有2个 spring框架下的项目,如此目前的另有2个 问提图片就是我的代码须要须要访问access数据库。

刚刚博文中,叙述了jdk8环境下java代码使用ucanaccess访问access数据库的过程。

接下来,也就是这篇博文,就是讨论一下,在spring环境下,透过dbcp或者 数据库连接池技术,使用ucannaccess访问access数据库的实现过程。

至此,我甚至怀疑抛开dbcp不谈,spring或者 的JDBCTemplate不是不需要 使用ucanaccess全是个问提图片

经过代码验证,我的上述怀疑是错的。

最终的结论是,spring须要通过JdbcTemplate调用ucanaccess注册的链接,对ms access进行数据库访问。

下图为我这次要测试代码



看,顺利的使用Spring从access文件(*.mdb)中读取了数据。

下面亲们来描述一下改造的过程。

首先,第一张图的理解有误应该修改成如下所示:



ucanaccess实现了java JDBC的次要功能,自愿成为“外围”也就是“临时工”,就是你的项目正确导入了它,如此刚刚的所有操作,你就当它不处于就须要了,或者说你就当ucanaccess是java的一次要就须要了。

下面直接上代码:

“UCanAccess is a pure Java JDBC Driver implementation which allows java developers and jdbc client programs to read/write Microsoft Access database (.mdb and .accdb files). No ODBC needed.”

spring使用dbcp或者 项目构建jdbc的连接池

ucanaccess或者 项目,是Java JDBC的另有2个 实现

经过上述最好的方式刚刚,就直接获取了Connection类的实例,也就是这刚刚的工作好多好多 有和ucanaccess无关了,全是java的工作了。

ucanaccess的作用是让java代码须要使用JAVA语言自身的DriverManager.getConnection("url","uname","pwd")最好的方式



就是你的项目导入了Spring的spring-jdbc,如此你的代码就须要大大方方的使用DriverManagerDataSource创建另有2个 ucanaccess注册的数据源,并把或者 数据源提供给JdbcTemplate的实例,或者由或者 实例执行JdbcTemplate的最好的方式query()进行查询,或者 最好的方式具有回调最好的方式,在回调最好的方式中读取结果集中的数据,并System.out.println()显示出来。

为哪几个要使用UCanAccess,而全是用Java语言另一方的最好的方式去访问ms access数据库呢?或者JDK8刚刚,Java语言自身不再提供jdbc-odbc bridge类式于于最好的方式,也就是JDK8刚刚这次要最好的方式被Java语言另一方放弃了。UCanAccess的角色至少 “临时工”或者“外围”或者“龙套”。



dbcp依赖于JDK中的JDBC

"DBCP 2 compiles and runs under Java 7 only (JDBC 4.1)"

ucanaccess是JDBC的另有2个 实现类

或者我推测,dbcp无法使用ucanaccess。



上图是我另一方绘制的图

就是使用spring,并导入dbcp的连接池,来操纵UCanAccess封装的最好的方式去访问ms access数据库。



Spring的子包 spring-jdbc 含晒 了亲们这次改造用到的2个类:

1.DriverManagerDataSource类

2.JdbcTemplate类

3.RowCallbackHandler类

首先,为亲们的项目导入spring-jdbc



这里啰嗦一句,你是为什么会么会知道你须要导入spring-jdbc的呢?

觉得我也是百度的,或者spring的官网也如此写你应该在另一方的项目导入哪几个包。主就是我看书须要使用spring的DriverManagerDataSource类来注册数据源,我搜索了一下,或者 类属于spring-jdbc