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

Java连接Access数据库

2017-11-21 22:16 218 查看
JDK1.7以下连接Access:ODBC连接方式

使用的工具
java JDK 1.7;
Access 2013;
ODBC数据源;

数据库结构
建立数据库shop,在其中添加表goods,表结构如下:





数据如下:



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





  



  





  

具体代码:目前环境是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中已有值,在最后添加就行,不同值之间添加分号;]一定要重启电脑!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 access odbc