JDK1.8 连接Access数据库

来源:互联网 发布:c语言中的enum 编辑:程序博客网 时间:2024/05/17 04:03


JDK1.8 连接Access数据库

JDBC (JavaDB Connection)---Java数据库连接

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/bj_chengrong/9862388

2、把Access_JDBC30.jar放到JDK的lib里。 
3、添加了以后,修改CLASSPATH,环境变量的值需要加上这个jar包,路径为驱动包的绝对路径,例如C:\ProgramFiles\Java\jre1.8.0_65\lib\Access_JDBC30.jar,添加完后,需要重启你的电脑,然后就可以连接了。[如果CLASSPATH中已有值,在最后添加就行,不同值之间添加分号;


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

        }

    }

}

========================================下面是JDK1.8

package com.sapdev.sd.browse;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcTest {

 public static void main(String[] args) {
  try {
   Class.forName("com.hxtt.sql.access.AccessDriver");
   Connection conn = DriverManager.getConnection("jdbc:Access:///c:\\THData.mdb");
   Statement stat = conn.createStatement();
   String sql = "select * from [0001]"; //注意数字表面需要用中括号
   ResultSet rs = stat.executeQuery(sql);
   while (rs.next()) {
    System.out.println(rs.getString(2));
   }
  } catch (Exception e) {
   // TODOAuto-generated catch block
   e.printStackTrace();
  }
 }

}