版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a13069730106/article/details/85001672
Java/kotlin如何连接access数据库
最近在工作中使用遇到了奇葩的需求,需要把Access的数据导入到mysql的数据库,而且两个数据库的表结构还是不一样的。最初的方案是把Access的数据库导出到文本文件,之后用java解析生成sql插入至Mysql数据库。但是他们数据结构复杂,无法实现。最后只能通过连联access数据库时行处理.
需要准备的资源
这里主要是通过UCanAccess连实现连接数据,下载地址:https://sourceforge.net/projects/ucanaccess/ ,目前新版为4.0.4。下载后,ucanaccess-4.0.4.jar 及把lib目录下的jar包拷到项目中
以下是代码参考(kotlin)
java可以适当修改
//有密码
// val msAccDB = "C:\\Users\\LiuPeng\\Desktop\\1.accdb;password=123456"
val msAccDB = "C:\\Users\\LiuPeng\\Desktop\\1.accdb;"
val dbURL = "jdbc:ucanaccess://" + msAccDB
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver")
var connection = DriverManager.getConnection(dbURL)
var statement = connection.createStatement()
var resultSet = statement.executeQuery("select * from testTable")
while (resultSet.next()) {
//通过列位置取值,序列从1开始
var id = resultSet.getString(1)
var name = resultSet.getString(2)
//通过列字段名称取值
var age = resultSet.getString("age")
var datetime = resultSet.getDate("datetime")
System.out.println("id:$id,name:$name,age:$age,datetime:$datetime")
}
statement.closeOnCompletion()
connection.close()
日志输出
id:1,name:张三,age:19,datetime:2018-12-14
id:2,name:李四,age:22,datetime:2018-12-07