最近在練習使用 JAVA 連結 資料庫,先練習如何存取 Microsoft 的 Access。
使用
String str = "sun.jdbc.odbc.JdbcOdbcDriver"; Class.forName(str);
建立 jdbc -> odbc 驅動程式居然不管用,原來是因為 Java 8 已經不支援了,所以改用 UCanAccess 這個 Java API。
在開始介紹之前,請先使用 Microsoft Access 建立一個資料庫與資料表,方法如下:
Step 1: 打開 Microsoft Access ,點擊"建立"標籤,選擇"資料表設計"。
Step 2: 建立欄位->另存新檔,下方的圖只建立了兩個欄位(account與pwd),當你另存新檔的時候就可以決定"資料表名稱",之後Acces會跳出下列的視窗問你是否增加主索引鍵,當然就是"是"。
之後請到下列的網站:
選擇網頁最上方的 Download UCanAccess,點它並下載它。
下載且解壓縮完之後,請把 ucanaccess-2.0.9.5.jar 與 lib 中所有的 jar 檔通通import到java開發工具。
之後就可以使用 Java 與 Microsoft Access 進行連結。
連結的步驟為:
1. 建立驅動程式
2. 連結資料庫
3. 進行新增、修改、選擇、刪除。
我寫了以下的程式碼,清楚地描述所有的事情:
package jdbcexample;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import net.ucanaccess.jdbc.JackcessOpenerInterface;
public class JDBCExample
{
public static void main(String[] args) throws SQLException
{
Connection connDB = null;
try
{
//建立驅動程式,連結odbc至Microsoft Access
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
//下列字串的://之後要加上access檔案存放的地方
String dataSource = "jdbc:ucanaccess://d:/Database1.accdb";
//連結資料庫
connDB = DriverManager.getConnection(dataSource);
//SQL共有 INSERT、SELECT、UPDATE、DELETE,以下分別列舉
Statement st = connDB.createStatement();
//之後新增資料
st.executeUpdate("INSERT INTO member (account, pwd) VALUES ('A','Taipei')");
st.executeUpdate("INSERT INTO member (account, pwd) VALUES ('B','Taipei')");
st.executeUpdate("INSERT INTO member (account, pwd) VALUES ('C','Taipei')");
//撈出剛剛新增的資料
st.execute("SELECT * FROM member");
ResultSet rs = st.getResultSet();
while(rs.next())
{
System.out.println(rs.getString("account")+" "+rs.getString("pwd"));
}
//刪除 account=c的資料
st.executeUpdate("DELETE FROM member where account='A'");
st.execute("SELECT * FROM member");
ResultSet rs1 = st.getResultSet();
while(rs1.next())
{
System.out.println(rs1.getString("account")+" "+rs1.getString("pwd"));
}
st.close();
connDB.close();
}catch(ClassNotFoundException e)
{
System.out.println("Driver loading failed!");
}catch(SQLException e)
{
System.out.println("DB linking failed!");
}
}
}
文章標籤
全站熱搜

不好意思,想請問把jar import 到 Java的開發工具中 是指一道哪一個地方呢?我是用NetBeans開發的,我試過移到NetBeans不同的資料夾都不行,我也有試著把jar連到我的專案底下 還是不行。 在import net.ucanaccess.jdbc.JackcessOpenerInterface; 這一行net底下會是紅線,無法編譯,希望格主有空可以回答,感謝你了:D
請參照 http://xken831.pixnet.net/blog/post/455647808-%5BJava%5DNetbeans%20import%20(%E5%8A%A0%E5%85%A5)%20jar%20%E6%AA%94
我後來竟然嘗試成功了,我再試試看別台電腦行不行,之後我再把解決方法貼上來,感謝格主提到用UCanAccess可以連接=ˇ=
我也有跟heart0210先生一樣的問題,也就是net下面有紅線無法編譯,想請教是用什麼方法解決的
請參照 http://xken831.pixnet.net/blog/post/455647808-%5BJava%5DNetbeans%20import%20(%E5%8A%A0%E5%85%A5)%20jar%20%E6%AA%94
抱歉版大 我是使用Android studio 在import net.ucanaccess.....這句 顯示沒有意義的宣告 是甚麼意思呢?
可能要先確定jar是否有import成功。
我不確定是否有 import成功 我在ucanaccess-4.0.1.jar 右鍵 沒有add as Library 請問版大 是甚麼問題呢?
可參閱下方的link~ http://rx1226.pixnet.net/blog/post/288329377-%5Bandroid%5D-2-16-%E5%8A%A0%E5%85%A5jar---android-studio
版大 不好意思 我已經確定import ucanaccess.jar 與lib 裡的jar檔 程式import net.ucanaccess.....宣告的部分 還是一樣的
Hi, 除了這個jar,在lib中的四個jar是否都有import呢? 如我文中所提,除了Ucanaccess的jar之外,還要把下載的lib中所有的jar通通import才行。還要麻煩檢查看看。
版大 我確定已經把 lib內的jar全部import 了 可是還是顯示無效的宣告 還有Connection connDB = null; 這段 null 也是一樣的狀況 再麻煩版大 解決了 謝謝!!
hi, 可否寄給我你的android 畫面的截圖 and lib截圖 to: d98725003@ntu.edu.tw
版大 我已經 截圖 傳至您的信箱了 再麻煩您收件了 謝謝
收到了,目前尚未用android複製,不過的確你少這行import: import net.ucanaccess.jdbc.JackcessOpenerInterface; 是需要寫在code裡面的