Java 连接Access

Java 连接Access

第一次使用连接Access数据库, 记录一下遇到的坑
Access驱动下载地址 http://pan.baidu.com/s/1o8ltTfc

不使用WINDOW的建立数据源方法,直接在Java代码内部与Access数据库连接

public void ConnectAccessFile() throws Exception
{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    /**
     * 直接连接access文件。dburl需要与windows安装大驱动名字一样,如下图
     */
    String dbur1 = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=/Users/dawn/Downloads/mpcy.mdb";
    Connection conn = DriverManager.getConnection(dbur1, "xhjxjf168", "xhjxjf168");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from admin001");
    while (rs.next()) {
        System.out.println(rs.getString(1));
    }
    rs.close();
    stmt.close();
    conn.close();
}

windows建立数据源连接

public void ConnectAccessDataSource()throws Exception {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    /**
     * 采用ODBC连接方式 如何建立ODBC连接?
     * 答:在windows下,【开始】->【控制面板】->【管理工具】->【数据源(ODBC)】,在数据源这里添加一个指向 dataS1.mdb 文件的数据源。
     * 比如创建名字为 dataS1
     */
    String dbur1 = "jdbc:odbc:dataS1";// 此为ODBC连接方式
    Connection conn = DriverManager.getConnection(dbur1, "username", "password");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from Table1");
    while (rs.next()) {
        System.out.println(rs.getString(1));
    }
    rs.close();
    stmt.close();
    conn.close();
}

使用Access_JDBC30.jar,不使用windows驱动连接

注意:不使用Windows驱动无法连接非mdb结尾的Access库,比如数据库文件为dat结尾的就连接不了

public void macConnect() throws Exception {
    Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();

    // 指定Access数据库文件的位置
    String url = "jdbc:Access:/·///Users/dawn/Downloads/mpcy0.dat";
    Connection conn = DriverManager.getConnection(url, "xhjxjf168", "xhjxjf168");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from admin001");
    //ResultSet rs = stmt.executeQuery("SELECT   * FROM   MSysObjects WHERE   Flags=0   AND   Type=1");
    while (rs.next()) {
        System.out.println(rs.getString(1));
    }
    rs.close();
    stmt.close();
    conn.close();
}

MyBatis连接Access

jdk8 中已经去除了sun.jdbc.odbc.JdbcOdbcDriver, 所以会导致 myBatis 连不了
注意配置文件以下设置需去除(参考地址 https://my.oschina.net/xuyang77/blog/11390)

<!--<setting name="defaultStatementTimeout" value="1" />-->

否则会报如下错误

[Microsoft][ODBC Microsoft Access Driver]可选的功能未实现
posted @ 2017-05-17 16:07  DawnHeaven  阅读(1003)  评论(0编辑  收藏  举报