那我来讲解Java连接Access数据库的两种方式:
一、利用JDBC-ODBC桥接器连接Access数据库
1. 首先,你需要先下载并安装Access数据库的ODBC驱动程序
比如我这里选择下载和安装Microsoft Access Database Engine 2016 Redistributable
2. 在Java代码中连接Access数据库
在Java中连接Access数据库,需要使用JDBC-ODBC桥接器,通俗来说,就是借助于Windows中的ODBC机制来完成对Access数据库的连接,具体实现如下:
public class AccessDemo {
private static Connection conn = null;
public static void main(String[] args) {
try {
// 1.注册JDBC-ODBC桥接器
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 2.得到与Access数据库服务器的连接
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:/mydb.accdb";
conn = DriverManager.getConnection(url);
// 3.对数据库进行操作
if (conn != null) {
System.out.println("Access数据库连接成功!");
// 进行数据库操作
} else {
System.out.println("Access数据库连接失败!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 4.释放资源
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
3. 示例
下面我提供一个插入数据的示例:
public static void insert(String name, int age, String sex) {
try {
// 1.注册JDBC-ODBC桥接器
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 2.得到与Access数据库服务器的连接
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:/mydb.accdb";
conn = DriverManager.getConnection(url);
// 3.准备插入数据的SQL语句
String sql = "insert into student(name, age, sex) values (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
// 4.设置插入的数据
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.setString(3, sex);
// 5.执行插入操作
int result = pstmt.executeUpdate();
if (result > 0) {
System.out.println("插入成功!");
} else {
System.out.println("插入失败!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 6.释放资源
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
二、利用Jackcess库连接Access数据库
Jackcess是一个开源的Java库,可以直接连接Access数据库,不需要使用JDBC-ODBC桥接器。
1. 导入Jackcess库
可以在官方网站(https://jackcess.sourceforge.io/)下载最新版本的Jackcess库,将jar包导入到Java项目中。
2. 在Java代码中连接Access数据库
使用Jackcess来连接Access数据库,需要引入以下类:
import java.io.File;
import java.io.IOException;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.Table;
然后可以使用以下代码连接Access数据库:
public class AccessDemo2 {
private static Database db;
public static void main(String[] args) {
try {
// 1.指定Access数据库的位置
File file = new File("D:/mydb.accdb");
// 2.得到与Access数据库的连接
db = new DatabaseBuilder(file).open();
// 3.对数据库进行操作
if (db != null) {
System.out.println("Access数据库连接成功!");
// 进行数据库操作
} else {
System.out.println("Access数据库连接失败!");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 4.释放资源
if (db != null) {
try {
db.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
3. 示例
下面我提供一个插入数据的示例:
public static void insert(String name, int age, String sex) {
try {
// 1.指定Access数据库的位置
File file = new File("D:/mydb.accdb");
// 2.得到与Access数据库的连接
db = new DatabaseBuilder(file).open();
// 3.准备插入数据的SQL语句
Table table = db.getTable("student");
Object[] row = new Object[3];
row[0] = name;
row[1] = age;
row[2] = sex;
// 4.执行插入操作
table.addRow(row);
db.commit();
System.out.println("插入成功!");
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.释放资源
if (db != null) {
try {
db.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以上就是利用JDBC-ODBC桥接器和Jackcess库连接Access数据库的完整攻略,希望能对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 连接Access数据库的两种方式 - Python技术站