Java 连接Access

本文介绍如何使用Java连接Access数据库的方法,包括直接连接Access文件、通过ODBC数据源连接及使用Access_JDBC30.jar的方式,并提供了MyBatis连接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();
}

image2017-5-11%209-34-4.png

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();
}

image2017-5-11%209-37-2.png

使用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]可选的功能未实现

转载于:https://www.cnblogs.com/dawnheaven/p/6868072.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值