JDBC (JavaDB Connection)---Java數(shù)據(jù)庫連接
JDK1.8增加了很多新特性,但不再包含access橋接驅(qū)動(dòng)弟灼,因此在連接Access數(shù)據(jù)庫時(shí)有所變化[和JDK1.6相比].
一广辰、 設(shè)置數(shù)據(jù)源(ODBC)
步驟:控制面板->系統(tǒng)安全->管理工具->數(shù)據(jù)源(ODBC) [針對(duì)Window 32位]
1.添加(選定Microsoft Access Driver(*.mdb *.accdb))完成
2.指定數(shù)據(jù)源名者蠕、選擇驅(qū)動(dòng)器(C剃允、D盤)球化,選中要連接的數(shù)據(jù)庫。
網(wǎng)上有很多關(guān)于設(shè)置數(shù)據(jù)源(ODBC)的帖子血当,可以百度一下幻赚。
3.常見問題
在創(chuàng)建Access數(shù)據(jù)的ODBC數(shù)據(jù)源時(shí)沒有Access數(shù)據(jù)源驅(qū)動(dòng)器…
打開管理工具 ODBC數(shù)據(jù)源管理器里面只有SQLServer ,沒有Access等其他的臊旭,這是因?yàn)锳ccess數(shù)據(jù)源驅(qū)動(dòng)器是32位的落恼,64位不支持。
4.解決方案[針對(duì)Window 64位]:打開32位版本的ODBC管理工具
通過C:/Windows/SysWOW64/odbcad32.exe啟動(dòng)32位版本ODBC管理工具离熏。(界面和設(shè)置過程和設(shè)置32位的相同)
二佳谦、JDK配置
1、JDK1.8中不再包含access橋接驅(qū)動(dòng)滋戳,因此不再支持jdbcodbc橋接方式钻蔑,需要下載access驅(qū)動(dòng)jar包(Access_JDBC30.jar),而JDK1.1到JDK1.6都自帶的有奸鸯,不需要下載咪笑。
2、把Access_JDBC30.jar放到JDK的lib里娄涩。
3窗怒、添加了以后,修改CLASSPATH,環(huán)境變量的值需要加上這個(gè)jar包,路徑為驅(qū)動(dòng)包的絕對(duì)路徑蓄拣,例如C:\ProgramFiles\Java\jre1.8.0_65\lib\Access_JDBC30.jar扬虚,添加完后,需要重啟你的電腦球恤,然后就可以連接了辜昵。[如果CLASSPATH中已有值,在最后添加就行咽斧,不同值之間添加分號(hào);]
4堪置、在Eclipse中,右點(diǎn)項(xiàng)目张惹,選擇properties---java build path ---Libraried---Add Jars晋柱,添加到工程就可以。
// JDK1.8下诵叁,JDBC連接Access數(shù)據(jù)庫 Class.forName("com.hxtt.sql.access.AccessDriver"); //最關(guān)鍵2步---加載驅(qū)動(dòng)雁竞、建立連接 (其他操作步驟都大同小異) Connection con = DriverManager.getConnection("jdbc:Access:///d:/MYDB.accdb");
注意:jdbc:Access:/// 固定,后面是數(shù)據(jù)庫路徑
d:/MYDB.accdb表示是D盤下的MYDB.accdb這個(gè)數(shù)據(jù)庫
//下面這個(gè)是JDK1.6連接access的代碼拧额,可以對(duì)比下driver和url寫法的不同
package com.ljheee.jdbc; importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.Statement;
//此方式---針對(duì)JDK1.6有效,
publicclassJdbcTest { publicstaticvoidmain(String[] args) { // url表示需要連接的數(shù)據(jù)源的位置碑诉,此時(shí)使用的是JDBC-ODBC橋的連接方式,url是“jdbc:odbc:數(shù)據(jù)源名” 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(); } } }