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

Java 连接Access的更多相关文章

  1. Java连接Access数据库的那些坑

    Java 使用 JDBC 连接Access数据库 需要掌握的技能 1.Java SE基本技术 2.懂点JDBC技术 能够学到如何使用Java正确的连接JDBC 环境 window8.1 64位 jdk ...

  2. JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库

    . 概要 1.1 JDBC概念 JDBC(Java Database Connectivity)是Java语言为了支持SQL功能而提供的与数据库连接的用户的接口.JDBC中包含了一组由(Java)语言 ...

  3. java连接access数据库

    完整代码: package odbcj; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prep ...

  4. java连接Access数据库的两种方法

    where ziduan  in(select  ziduan from  table) 嵌套 ResultSet rs = pst.executeQuery();List list = new Ar ...

  5. Java 连接 Access数据库方式

    import <a href="http://lib.csdn.net/base/java" class='replace_word' title="Java 知识 ...

  6. java连接access的用户名、密码异常Decoding not supported解决

    Java通过ucanaccess对Access数据库.accdb文件连接: public static Connection getConn() { try { String dbURL = &quo ...

  7. 关于 64位系统 java连接access 报错java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

    报错的原因是url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=E:/公司/2000.mdb"; 这样是不行 ...

  8. Java 连接MS Access数据库

    java连接MS Access的两种方式: 1.JDBC-ODBC Java连接Access可以使用MS自带的管理工具-->数据源(ODBC)设置建立连接,这样就不需要导入jar.但是,如此一来 ...

  9. JSP连接access数据库

    一个用jsp连接Access数据库的代码. 要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数 ...

随机推荐

  1. 浅析servlet

    目录 Servlet简介 Servlet定义 Servlet的特点 Servlet底层原理 Servlet GenericServlet HttpServlet Servlet的生命周期 Servle ...

  2. (二)线程Thread中的方法详解

    1.start() start()方法的作用讲得直白点就是通知"线程规划器",此线程可以运行了,正在等待CPU调用线程对象得run()方法,产生一个异步执行的效果.通过start( ...

  3. spring定时任务的配置式与注解式

    在定时任务配置文件中添加内容: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&q ...

  4. Windows全屏代码--摘自Chrome

    变量定义: typedef struct SCREEN_INFO { DWORD dwStyle; DWORD dwExStyle; CRect rect; bool bMaximized; }Sre ...

  5. PHP解决h5页面跨域

    前端h5 页面请求后端接口会出现跨域, PHP 只需三行代码即可解决 //解决前端跨域(h5页面) header("Access-Control-Allow-Origin:*"); ...

  6. g++版本低于4.7使用C++11

    编译时需要添加: 需要添加头文件#include<memory> g++ -std=gnu++0x share_ptr.cpp -o s 原文: C++11 features are av ...

  7. 数据类型(C++)

    不同系统会有不同差异: 类型 位(byte) 范围 char 1 -128—127 or 0 – 255 unsigned char 1 0 – 255 signed int 1 -128—127 i ...

  8. c 判断一个字符是否为字母

    #include <stdio.h> #include <wctype.h> int main () { ; wchar_t str[] = L"C++"; ...

  9. Java中二维数组

    二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组), 可以看做是一张表格. 初始化: 动态初始化 int[ ][ ]  arr = new int[3][2]; 定义了一个二维数组,其中 ...

  10. JsonObject处理时间转换问题

    正常传时间的时候使用JsonObject转换的时候会把整个日期都转换成一个新的对象,而如何转换成传统的yyyy-MM-dd HH:mm:ss类型呢 常用的时间格式 private String for ...