Java连接Access数据库

  • JDK1.7以下连接AccessODBC连接方式
    • 使用的工具
      • java JDK 1.7;
      • Access 2013;
      • ODBC数据源;
    • 数据库结构
      • 建立数据库shop,在其中添加表goods,表结构如下:

Java连接Access数据库_第1张图片

Java连接Access数据库_第2张图片

  • 数据如下:

  • 建立ODBC数据源:控制面板-->管理工具-->数据源(odbc)

Java连接Access数据库_第3张图片

Java连接Access数据库_第4张图片

  

Java连接Access数据库_第5张图片

  

Java连接Access数据库_第6张图片

Java连接Access数据库_第7张图片

  

  • 具体代码:目前环境是JDK1.8,下列代码没有测试

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Date;

public class Example11_1 {

public static void main(String args[]) throws Exception {

Connection con = null;

Statement sql;

ResultSet rs;

 

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// ODBC连接数据源的方式

con = DriverManager.getConnection("jdbc:odbc:myData","","");

// java代码直接连接access文件

// con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=shop.mdb","","");

 

sql = con.createStatement();

rs = sql.executeQuery("SELECT * FROM goods WHERE price>0");

while(rs.next()) {

String number = rs.getString(1);

String name = rs.getString(2);

Date date = rs.getDate("madTime");

double price = rs.getDouble("price");

System.out.printf("%-4s",number);

System.out.printf("%-6s",name);

System.out.printf("%-15s",date.toString());

System.out.printf("%6s\n",price);

}

con.close();

}

}

  • 在java代码中建立Jdbc-Odbc桥接器,代码是:
    • Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  • 连接数据库,这里要用到java.sql包中的Connection类声明一个对象,再用类DriverManager调用它的静态方法getConnection创建这个连接。
    • Connection con=DriverManager.getConnection("jdbc:odbc:数据源名字","数据源用户名","数据源密码");
  • JDK1.8连接Access
    • 说明:JDK1.8不再包含access桥接驱动,所以要手动引入Access驱动包
    • 引入了jar包后,相关的调用类也发生了变化,改变如下:黄色高亮为改变部分;

package hey.up;

  

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

  

public class JDBCAccess {

public static void main(String[] args) {

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

String url = "jdbc:Access:///d:/a1.mdb";

try {

Class.forName("com.hxtt.sql.access.AccessDriver");

Connection conn = DriverManager.getConnection(url);

Statement stat = conn.createStatement();

String sql = "select * from goods";

ResultSet rs = stat.executeQuery(sql);

while(rs.next()){

System.out.println(rs.getString(2));

}

} catch (ClassNotFoundException | SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

  • 效果
  • 注意:网上还有一种将Access_JDBC30.jar放入JDK中的lib文件下,利用classpath系统变量来引用,这样就省去了将jar包引入项目的步骤。但此方式我没有测试通过,所以只是简单记录下来操作步骤;
    • 把Access_JDBC30.jar放到JDK的lib里;
    • 添加了以后,修改CLASSPATH,环境变量的值需要加上这个jar包,路径为驱动包的绝对路径,例如C:\ProgramFiles\Java\jre1.8.0_65\lib\Access_JDBC30.jar,添加完后,需要重启电脑。[如果CLASSPATH中已有值,在最后添加就行,不同值之间添加分号;]一定要重启电脑!

你可能感兴趣的:(javaSE)