1. 程式人生 > >JDK1.8 連線Access資料庫

JDK1.8 連線Access資料庫

JDBC (JavaDB Connection)—Java資料庫連線

JDK1.8增加了很多新特性,但不再包含access橋接驅動,因此在連線Access資料庫時有所變化[和JDK1.6相比].  一、 設定資料來源(ODBC)  步驟:控制面板->系統安全->管理工具->資料來源(ODBC) [針對Window 32位]  1.新增(選定Microsoft Access Driver(.mdb  .accdb))完成  2.指定資料來源名、選擇驅動器(C、D盤),選中要連線的資料庫。  網上有很多關於設定資料來源(ODBC)的帖子,可以百度一下。  3.常見問題  在建立Access資料的ODBC資料來源時沒有Access資料來源驅動器…  開啟管理工具 ODBC資料來源管理器裡面只有SQLServer ,沒有Access等其他的,這是因為Access資料來源驅動器是32位的,64位不支援。  4.解決方案[針對Window 64位]:開啟32位版本的ODBC管理工具  通過C:/Windows/SysWOW64/odbcad32.exe啟動32位版本ODBC管理工具。(介面和設定過程和設定32位的相同)

二、JDK配置  1、JDK1.8中不再包含access橋接驅動,因此不再支援jdbcodbc橋接方式,需要下載access驅動jar包(Access_JDBC30.jar),而JDK1.1到JDK1.6都自帶的有,不需要下載。  2、把Access_JDBC30.jar放到JDK的lib裡。   3、添加了以後,修改CLASSPATH,環境變數的值需要加上這個jar包,路徑為驅動包的絕對路徑,例如C:\ProgramFiles\Java\jre1.8.0_65\lib\Access_JDBC30.jar,新增完後,需要重啟你的電腦,然後就可以連線了。[如果CLASSPATH中已有值,在最後新增就行,不同值之間新增分號;]  4、在Eclipse中,右點專案,選擇properties—java build path —Libraried—Add Jars,新增到工程就可以。 // JDK1.8下,JDBC連線Access資料庫  Class.forName("com.hxtt.sql.access.AccessDriver");             //最關鍵2步---載入驅動、建立連線   (其他操作步驟都大同小異)  Connection con = DriverManager.getConnection("jdbc:Access:///d:/MYDB.accdb");

注意:jdbc:Access:/// 固定,後面是資料庫路徑  d:/MYDB.accdb表示是D盤下的MYDB.accdb這個資料庫

//下面這個是JDK1.6連線access的程式碼,可以對比下driver和url寫法的不同 package com.ljheee.jdbc;  importjava.sql.Connection;  importjava.sql.DriverManager;  importjava.sql.ResultSet;  importjava.sql.Statement;     //此方式—針對JDK1.6有效, publicclassJdbcTest {      publicstaticvoidmain(String[] args) {          // url表示需要連線的資料來源的位置,此時使用的是JDBC-ODBC橋的連線方式,url是“jdbc:odbc:資料來源名”          String url = "jdbc:odbc:MYDB";          try {             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");             Connection conn =DriverManager.getConnection(url);             Statement stat =conn.createStatement();             String sql = "select * fromStudent";             ResultSet rs =stat.executeQuery(sql);             while(rs.next()) {                 System.out.println(rs.getString(2));             }          } catch(Exception e) {             // TODOAuto-generated catch block              e.printStackTrace();          }      }  }