Java 连接Access
Java 连接Access
第一次使用连接Access数据库, 记录一下遇到的坑
Access驱动下载地址 http://pan.baidu.com/s/1o8ltTfc
不使用WINDOW的建立数据源方法,直接在Java代码内部与Access数据库连接
public void ConnectAccessFile() throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
* 直接连接access文件。dburl需要与windows安装大驱动名字一样,如下图
*/
String dbur1 = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=/Users/dawn/Downloads/mpcy.mdb";
Connection conn = DriverManager.getConnection(dbur1, "xhjxjf168", "xhjxjf168");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from admin001");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
windows建立数据源连接
public void ConnectAccessDataSource()throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
* 采用ODBC连接方式 如何建立ODBC连接?
* 答:在windows下,【开始】->【控制面板】->【管理工具】->【数据源(ODBC)】,在数据源这里添加一个指向 dataS1.mdb 文件的数据源。
* 比如创建名字为 dataS1
*/
String dbur1 = "jdbc:odbc:dataS1";// 此为ODBC连接方式
Connection conn = DriverManager.getConnection(dbur1, "username", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from Table1");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
使用Access_JDBC30.jar,不使用windows驱动连接
注意:不使用Windows驱动无法连接非mdb结尾的Access库,比如数据库文件为dat结尾的就连接不了
public void macConnect() throws Exception {
Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
// 指定Access数据库文件的位置
String url = "jdbc:Access:/·///Users/dawn/Downloads/mpcy0.dat";
Connection conn = DriverManager.getConnection(url, "xhjxjf168", "xhjxjf168");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from admin001");
//ResultSet rs = stmt.executeQuery("SELECT * FROM MSysObjects WHERE Flags=0 AND Type=1");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
MyBatis连接Access
jdk8 中已经去除了sun.jdbc.odbc.JdbcOdbcDriver, 所以会导致 myBatis 连不了
注意配置文件以下设置需去除(参考地址 https://my.oschina.net/xuyang77/blog/11390)
<!--<setting name="defaultStatementTimeout" value="1" />-->
否则会报如下错误
[Microsoft][ODBC Microsoft Access Driver]可选的功能未实现