【資料庫】java eclipse連結Access資料庫程式碼及遇到的問題
阿新 • • 發佈:2019-02-14
錯誤1:[Microsoft][ODBC 驅動程式管理器] 未發現數據源名稱並且未指定預設驅動程式
使用ODBC進行連結時,需要新增資料來源
* 在windows下,【開始】->【控制面板】->【效能和維護】->【管理工具】->【資料來源】,在資料來源這裡新增一個指向a1.mdb檔案的資料來源。 * 比如建立名字為dataS1
錯誤2:在指定的 DSN 中,驅動程式和應用程式之間的體系結構不匹配
我的office是2010 32位的,驅動程式也是32位的,jdk是64位的。解除安裝32位office,費了好大勁。。重灌64位office,以及資料庫驅動。
Office2010解除安裝過程很艱辛,網上有手動解除安裝過程,建議不要選擇,效率低比較複雜。建議選用Microsoft自帶解除安裝工具,另外注意自己的系統是win7/8/10,第一次用的解除安裝工具win8以前好使,win8不好使,又手動解除安裝很蛋疼。後來直接Microsoft自帶工具解除安裝解決問題。
安裝office2010時出現錯誤 1402。安裝程式無法開啟登錄檔項 UNKNOWN\Components\“隨機數字”針對這個問題網上有很多教程,
總結一下就是 :
如果是Unknown的情況,對登錄檔項中UserData資料夾進行許可權設定,在“高階”中將所有者設定成為當前使用者,並勾選“完全控制”“讀取”“特殊許可權”,另外可繼承要勾選上。
不是unknown的情況,百度上有很多解決方案,大致類似,是對指定的資料夾進行許可權設定。
程式碼:
程式碼轉載自:http://blog.csdn.net/narsh/article/details/5295727public class ConnectAccess { /** * 初學者請注意: * 1:先建立一個access檔案a1.mdb,並放在D:/下; * 2:在<a href="http://lib.csdn.net/base/14" class='replace_word' title="MySQL知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>資料庫</a>檔案a1.mdb中建立一個表Table1; * 3:為Table1新增一列,並插入至少一條記錄; * 4:本文是一個完整的類,直接拿去執行就可以。 */ public static void main(String args[]) throws Exception { ConnectAccess ca=new ConnectAccess(); ca.ConnectAccessFile(); ca.ConnectAccessDataSource(); } public void ConnectAccessFile() throws Exception { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); /** * 直接連線access檔案。 */ String dbur1 = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d://a1.mdb"; 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(); } public void ConnectAccessDataSource()throws Exception { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); /** * 採用ODBC連線方式 如何建立ODBC連線? * 答:在windows下,【開始】->【控制面板】->【效能和維護】->【管理工具】->【資料來源】,在資料來源這裡新增一個指向a1.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(); } }
目前可以繼續關注的點:
1、ResultSet結果集的使用方式。
2、資料庫連結的不同方式和原理。