Access數據庫連接錯誤解決辦法

Access數據庫連接錯誤解決辦法

64位windows系統連接Access數據庫,程序中可能需要修改Access數據庫連接:

32位:String strUrl = “jdbc:odbc:driver={microsoft Access Driver (*.mdb)};DBQ=c://demo.mdb”

64位:String strUrl = “jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=c://demo.mdb”

修改后仍報錯則進入“控制面板”-》“管理工具”-》“數據源(ODBC)”查看系統是否存在Access驅動

Access數據庫連接錯誤解決辦法

若不存在則需要安裝Microsoft Access驅動程序:

官方:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13255

32位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/

AccessDatabaseEngine.exe

64位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/

AccessDatabaseEngine_X64.exe

下面是連接access的.mdb文件,解析代碼:

package?test; import?java.io.File; import?java.sql.Connection; import?java.sql.DriverManager; import?java.sql.ResultSet; import?java.sql.ResultSetMetaData; import?java.sql.Statement; import?java.util.Properties; public?class?Test?{ ????????/** ?????*?TODO?:?讀取文件access ?????*?? ?????*?@param?filePath ?????*?@return ?????*?@throws?ClassNotFoundException ?????*/?? ????public?static?void?readFileACCESS(File?mdbFile)?{?? ????????Properties?prop?=?new?Properties();?? ????????prop.put("charSet",?"gb2312");?//?這里是解決中文亂碼?? ????????prop.put("user",?"");?? ????????prop.put("password",?"");?? ????????//String?url?=?"jdbc:odbc:driver={Microsoft?Access?Driver?(*.mdb)};DBQ="?+?mdbFile. ????????getAbsolutePath();?? ????????String?url?=?"jdbc:odbc:driver={Microsoft?Access?Driver?(*.mdb,?*.accdb)};DBQ="+?mdbFile. ????????getAbsolutePath();?? ????????Statement?stmt?=?null;?? ????????ResultSet?rs?=?null;?? ????????String?tableName?=?null;?? ????????try?{?? ????????????Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");?? ????????????//?連接到mdb文件?? ????????????Connection?conn?=?DriverManager.getConnection(url,?prop);?? ????????????ResultSet?tables?=?conn.getMetaData().getTables(?? ????????????????????mdbFile.getAbsolutePath(),?null,?null,?? ????????????????????new?String[]?{?"TABLE"?});?? ????????????//?獲取第一個表名?? ????????????if?(tables.next())?{?? ????????????????tableName?=?tables.getString(3);//?getXXX?can?only?be?used?once?? ????????????}?else?{?? ????????????????return;?? ????????????}?? ????????????stmt?=?(Statement)?conn.createStatement();?? ????????????//?讀取第一個表的內容?? ????????????rs?=?stmt.executeQuery("select?*?from?"?+?tableName);?? ????????????ResultSetMetaData?data?=?rs.getMetaData();?? ????????????while?(rs.next())?{?? ????????????????for?(int?i?=?1;?i?<p>python學習網,大量的免費<a href="https://www.php.cn/topic/access/" target="_blank">access數據庫教程</a>,歡迎在線學習!</p>

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享