2014-12-07 16:20:20

UCanAccess连接Access数据库

Access_JDBC30是跨平台连接access最适合的jar但收费非常的贵,Access_JDBC30的免费版有查询50次、数据小于1000的限制。UCanAccess也提供了数据连接功能,可以比较方便的读写access数据库。UCanAccess自身依赖几个jar包,比如核心的:jackcess-2.0.6.jar ,Jackcess 是一个Java 类库,用来读写微软的Access 数据库。如果设置了hsqldb,那么将会在内存中加载. 默认=true.

快速入门:http://ucanaccess.sourceforge.net/site.html

依赖包:

commons-lang-2.6.jar
commons-logging-1.1.1.jar
hsqldb.jar
jackcess-2.0.6.jar
ucanaccess-2.0.9.2.jar

下载地址:UCanAccess-2.0.9.2-bin.zip

连接方式如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author yz
 */
public class TestAccessMDB {
    public static void main(String[] args) {
        try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            String pwd = new String(new byte[]{(byte) 0xc3,(byte) 0xdc,0x0d,0x09,0x0a,(byte) 0xc2,(byte) 0xeb,0x02},"GBK");
            Connection conn = DriverManager.getConnection("jdbc:ucanaccess:///Users/yz/db.mdb","",pwd);
            Statement s = conn.createStatement();
            ResultSet rs = s.executeQuery("SELECT * FROM site");
            while (rs.next()) {
                System.out.println(rs.getObject(6));
            }
        } catch (Exception ex) {
            Logger.getLogger(TestAccessMDB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
发表回复