您的位置:首页 > 编程语言 > Java开发

JDK1.8 连接Access数据库

2016-05-01 16:05 447 查看
JDK1.8 连接Access数据库

JDBC (JavaDB Connection)---Java数据库连接
JDBC是一种可用于执行SQL语句的JAVA API------推荐文章
http://blog.csdn.net/ljheee/article/details/50988796

JDK1.8增加了很多新特性,但不再包含access桥接驱动,因此在连接Access数据库时有所变化[和JDK1.6相比].

一、 设置数据源(ODBC)
步骤:控制面板->系统安全->管理工具->数据源(ODBC) [针对Window 32位]
1.添加(选定Microsoft Access Driver(*.mdb *.accdb))-à完成

2.指定数据源名、选择驱动器(C、D盘),选中要连接的数据库。

网上有很多关于设置数据源(ODBC)的帖子,可以百度一下。
3.常见问题

在创建Access数据的ODBC数据源时没有Access数据源驱动器…

打开管理工具 ODBC数据源管理器里面只有SQLServer ,没有Access等其他的,这是因为Access数据源驱动器是32位的,64位不支持。
4.解决方案[针对Window 64位]:打开32位版本的ODBC管理工具
通过C:/Windows/SysWOW64/odbcad32.exe启动32位版本ODBC管理工具。(界面和设置过程和设置32位的相同)
二、JDK配置
1、JDK1.8中不再包含access桥接驱动,因此不再支持jdbcodbc桥接方式,需要下载access驱动jar包(Access_JDBC30.jar),而JDK1.1到JDK1.6都自带的有,不需要下载。地址http://download.csdn.net/detail/ljheee/9507691
2、把Access_JDBC30.jar放到JDK的lib里。

3、添加了以后,修改CLASSPATH,环境变量的值需要加上这个jar包,路径为驱动包的绝对路径,例如C:\ProgramFiles\Java\jre1.8.0_65\lib\Access_JDBC30.jar,添加完后,需要重启你的电脑,然后就可以连接了。[如果CLASSPATH中已有值,在最后添加就行,不同值之间添加分号;]
关于设置CLASSPATH文章 http://blog.csdn.net/ljheee/article/details/50810570 4、在Eclipse中,右点项目,选择properties---java build path ---Libraried---Add Jars,添加到工程就可以。

// JDK1.8下,JDBC连接Access数据库
Class.forName("com.hxtt.sql.access.AccessDriver"); //最关键2步---加载驱动、建立连接 (其他操作步骤都大同小异)

Connection con = DriverManager.getConnection("jdbc:Access:///d:/MYDB.accdb");
注意:jdbc:Access:/// 固定,后面是数据库路径

d:/MYDB.accdb表示是D盘下的MYDB.accdb这个数据库

//下面这个是JDK1.6连接access的代码,可以对比下driver和url写法的不同

package com.ljheee.jdbc;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;

//此方式---针对JDK1.6有效,
publicclassJdbcTest {

publicstaticvoidmain(String[] args) {

// url表示需要连接的数据源的位置,此时使用的是JDBC-ODBC桥的连接方式,url是“jdbc:odbc:数据源名”

String url = "jdbc:odbc:MYDB";

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn =DriverManager.getConnection(url);
Statement stat =conn.createStatement();
String sql = "select * fromStudent";
ResultSet rs =stat.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getString(2));
}

} catch(Exception e) {
// TODOAuto-generated catch block

e.printStackTrace();

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: