Java之純JDBC連線Access
關於用JDBC-ODBC這種方式的解析,散仙在這裡就不在演示了,網上搜一下,一大堆都是關於橋接的,今天著重說一下第二種方式,使用JDBC連線Access,這樣來做,既可以保證操作平臺的一致性,也避免了,讓使用者去配置資料來源的一些底層工作,而且也大大提高了程式的靈活性。
寫這篇文章最重要的目的就是給大家一個正確的解析方式包括相容03的mdb以及07的accdb資料庫檔案,因為網上搜的真正關於純JDBC解析Access的程式碼,大部分都是轉來轉去,而且程式碼好多都不能用,最重要的是,你沒有一個合適Access驅動,就算程式碼拷貝下來了,沒有驅動,也搞不了。有時候找一個驅動也有可能是非常麻煩的一件事,所以散仙今天就再此總結一下,後面會把驅動的jar包類附上。
核心程式碼如下:
[/size][/color][/b]
public static Connection getJDBCConnection(){
try{
Class.forName("com.hxtt.sql.access.AccessDriver");//載入Access驅動
Properties prop = new Properties();
prop.put("charSet", "gb2312"); //設定編碼防止中文出現亂碼
/**
* 相容07+的Access
* **/
// con = DriverManager.getConnection("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=E:/zdbz/my.accdb",prop);
/**
*
* 相容03的Access
* **/
con = DriverManager.getConnection("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=E:/zdbz/zdbztest.mdb",prop);
//System.out.println(con);//列印連線
return con;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
[b][color=green][size=x-large]散仙用07的給大家做個演示,03的就給示例了,儲存內容如下圖所示[/size]
[/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0089/5509/f509a106-9792-3a5d-afda-b744dfd74621.png[/img]
[b][color=green][size=x-large]列印的程式碼如下[/size][/color][/b]
/**
* 列印access的前2列資料
* */
public static void showAllJDBC()throws Exception{
Connection con=getJDBCConnection();
PreparedStatement ps=con.prepareStatement("select *from info ");// 07
// PreparedStatement ps=con.prepareStatement("select *from testcopy "); 03
ResultSet rs=ps.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2));
}
rs.close();
ps.close();
con.close();
}
[b][color=green][size=x-large]結果如下:[/size][/color][/b]
1 A
2 B
3 我們
[b][color=olive][size=x-large]至此,我們就可以完美實現純JDBC的方式操作Access了,不管是03版的還是07+的都可以很好的操作。
小結:
雖然現在像Access這種非工程的資料庫,我們很少使用,但是有時候使用者往往會比較喜歡用這種資料庫,因為畢竟比專業的My SQL,Oracle,SQL Server等等資料庫要簡單的多,所以還是有必要儲備一下純JDBC操作Access的知識,橋接的,散仙就不多說了,有點麻煩,而且換成Linux平臺根本就使不了了,由此看來,純JDBC優勢就不言而喻了。
(覺得不錯,就收藏下吧 :D )
[/size][/color][/b]