第一次使用鏈接Access數據庫, 記錄一下遇到的坑
Access驅動下載地址 http://pan.baidu.com/s/1o8ltTfcjava
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(); }
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(); }
注意:不使用Windows驅動沒法鏈接非mdb結尾的Access庫,好比數據庫文件爲dat結尾的就鏈接不了sql
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(); }
jdk8 中已經去除了sun.jdbc.odbc.JdbcOdbcDriver, 因此會致使 myBatis 連不了
注意配置文件如下設置需去除(參考地址 https://my.oschina.net/xuyang77/blog/11390)數據庫
<!--<setting name="defaultStatementTimeout" value="1" />-->
不然會報以下錯誤windows
[Microsoft][ODBC Microsoft Access Driver]可選的功能未實現