2015年3月16日 星期一

Jackcess(用來連接Access的Java Library) : (二) 開啟Access檔案

最基本的開啟方法:

Database db = DatabaseBuilder.open(new File("mydb.mdb"));

是不是很簡單呢?
但是如果要應付不同的需求就得增加點變化了

Q1: 如果我的Access資料庫有密碼呢?

確認一下你的專案是否有加入jackcess-encrypt(詳見上一篇)
然後將上面的程式碼改成這樣:

File dbFile = new File("mydb.mdb");
CryptCodecProvider codec = new CryptCodecProvider("my password");
Database db = new DatabaseBuilder(dbFile).setCodecProvider(codec).open();

Q2: Access97打不開!

由於Jackcess目前只支援Access 97 read only
所以開啟97的mdb時必須聲明唯讀

Database db = new DatabaseBuilder(dbFile).setReadOnly(true).open();

Q3: 讀取出來的資料變成亂碼怎麼辦?

像我的mdb檔中文字是用big5編碼
讀出來全是亂碼
Jackcess一樣提供了編碼解決方案:

Database db = new DatabaseBuilder(dbFile).setCharset(Charset.forName("big5")).open();