JDK1.8增加了很多新特性,但不再包含access橋接驅(qū)動(dòng),因此在連接Access數(shù)據(jù)庫(kù)時(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盤(pán)),選中要連接的數(shù)據(jù)庫(kù)。 網(wǎng)上有很多關(guān)于設(shè)置數(shù)據(jù)源(ODBC)的帖子,可以百度一下。 3.常見(jiàn)問(wèn)題 在創(chuàng)建Access數(shù)據(jù)的ODBC數(shù)據(jù)源時(shí)沒(méi)有Access數(shù)據(jù)源驅(qū)動(dòng)器… 打開(kāi)管理工具 ODBC數(shù)據(jù)源管理器里面只有SQLServer ,沒(méi)有Access等其他的,這是因?yàn)锳ccess數(shù)據(jù)源驅(qū)動(dòng)器是32位的,64位不支持。 4.解決方案[針對(duì)Window 64位]:打開(kāi)32位版本的ODBC管理工具 通過(guò)C:/Windows/SysWOW64/odbcad32.exe啟動(dòng)32位版本ODBC管理工具。(界面和設(shè)置過(guò)程和設(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ù)庫(kù) 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ù)庫(kù)路徑 d:/MYDB.accdb表示是D盤(pán)下的MYDB.accdb這個(gè)數(shù)據(jù)庫(kù)
//下面這個(gè)是JDK1.6連接access的代碼,可以對(duì)比下driver和url寫(xiě)法的不同 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(); } } }
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注