Java 使用 ucanaccess 連線Access資料庫
阿新 • • 發佈:2019-02-07
//首先需要新增 ucanaccess 的jar包
//ucanaccess下載–>(ucanaccess的jar包下載地址)
//ucanaccess官網–>(ucanaccess官網)
//然後引入 ucanaccess 的 jar 包
//可以只引入核心 ucanaccess 的 jar 包,建議全部引入
package com.xu.access; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class Access { public static void main(String[] args) throws Exception { Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");//這個驅動的地址不要改 Connection con=DriverManager.getConnection("jdbc:ucanaccess://G:\\Access\\bookmng.mdb","",""); //DriverManager.getConnection("jdbc:ucanaccess:// Access的相對/絕對路徑","不用填寫","不用填寫"); //只依據自己的實際情況更改 G:\\Access\\bookmng.mdb 即你的Access檔案(如text.mdb) 的絕對路徑或相對路徑 //後面的兩個引數可以不用填寫 //除了上面的兩步下面的操作和 MySQL Oracle 的基本一樣 //************************************************************************ //************************************************************************ //**1.操作資料庫方法一:使用Statement物件** //如果你是使用此方法在專案中,可以將這些方法封裝起來。(請逐一測試這些方法由於每次操作都關閉了連線,如果同時測試這些方法會報錯) //建立 Statement物件 Statement stmt=con.createStatement(); //1.1查詢資料(使用ResultSet接收資料庫查詢結果) ResultSet rs=stmt.executeQuery("select * from test"); while(rs.next()){ System.out.println(rs.getString("name")); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 stmt.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); //1.2新增資料(增、刪、改操作資料可以都使用executeUpdate()這個方法) //返回一個int型別結果,表示受影響行數,如果結果小於或者等於0,則表示失敗 int add=stmt.executeUpdate("insert into test(name,age) values('王五',20)"); if(add>0){ System.out.println("新增成功!!!"); }else{ System.out.println("新增失敗!!!"); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 stmt.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); //1.3刪除資料(增、刪、改操作資料可以都使用executeUpdate()這個方法) //返回一個int型別結果,表示受影響行數,如果結果小於或者等於0,則表示失敗 int del=stmt.executeUpdate("delete test where name='王五'"); if(del>0){ System.out.println("刪除成功!!!"); }else{ System.out.println("刪除失敗!!!"); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 stmt.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); //1.4修改資料(增、刪、改操作資料可以都使用executeUpdate()這個方法) //返回一個int型別結果,表示受影響行數,如果結果小於或者等於0,則表示失敗 int upd=stmt.executeUpdate("update test set name='趙四' where name='王五'"); if(upd>0){ System.out.println("修改成功!!!"); }else{ System.out.println("修改失敗!!!"); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 stmt.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); //************************************************************************ //************************************************************************ //**2.操作資料庫方法二:使用PreparedStatement物件(預編譯可以防止SQL注入)** //如果你是使用此方法在專案中,可以將這些方法封裝起來。(請逐一測試這些方法由於每次操作都關閉了連線,如果同時測試這些方法會報錯) //2.1查詢資料(使用ResultSet接收資料庫查詢結果) PreparedStatement pstmt1=con.prepareStatement("insert into test(name,age) values('王五',20)"); ResultSet rs2=pstmt1.executeQuery(); while(rs2.next()){ System.out.println(rs2.getString("name")); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 pstmt1.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); //2.2新增資料(增、刪、改操作資料可以都使用executeUpdate()這個方法) //返回一個int型別結果,表示受影響行數,如果結果小於或者等於0,則表示失敗 PreparedStatement pstmt2=con.prepareStatement("insert into test(name,age) values('王五',20)"); int add2=pstmt2.executeUpdate(); if(add2>0){ System.out.println("新增成功!!!"); }else{ System.out.println("新增失敗!!!"); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 pstmt2.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); //1.3刪除資料(增、刪、改操作資料可以都使用executeUpdate()這個方法) //返回一個int型別結果,表示受影響行數,如果結果小於或者等於0,則表示失敗 PreparedStatement pstmt3=con.prepareStatement("delete test where name='王五'"); int del2=pstmt3.executeUpdate(); if(del2>0){ System.out.println("刪除成功!!!"); }else{ System.out.println("刪除失敗!!!"); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 pstmt3.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); //1.4修改資料(增、刪、改操作資料可以都使用executeUpdate()這個方法) //返回一個int型別結果,表示受影響行數,如果結果小於或者等於0,則表示失敗 PreparedStatement pstmt4=con.prepareStatement("update test set name='趙四' where name='王五'"); int upd2=pstmt4.executeUpdate(); if(upd2>0){ System.out.println("修改成功!!!"); }else{ System.out.println("修改失敗!!!"); } //在每一個對於資料庫的操作完成之後都要關閉Statement物件 pstmt4.close(); //在每一個對於資料庫的操作完成之後都要關閉Connection物件 con.close(); } }
//UCanAccess 介紹
//UCanAccess是一個Microsoft Access的開源JDBC驅動實現 //特性: //1.支援 Access 2000、2003、2007、2010 及後續高版本 //2.支援 SELECT, INSERT,UPDATE,DELETE 語句。 事務和savepoints。 //3.支援資料型別:YESNO,BYTE,INTEGER,LONG,SINGLE,DOUBLE,NUMERIC,CURRENCY,COUNTER,TEXT,OLE,MEMO,GUID,DATETIME。 //4.支援多使用者併發訪問。 //5.支援連線池。 //6.支援ANSI 92 SQL,core SQL-2008。 //7.支援MS Access SQL。 //8.限制: //9.只支援基本的DDL操作。 //10.較差的多程序訪問支援。
我的 Access 資料庫如下圖----->
下圖是我執行了新增操作的截圖----->