Java 使用 ucanaccess 连接Access数据库

您所在的位置:网站首页 jdbc连接access数据库 Java 使用 ucanaccess 连接Access数据库

Java 使用 ucanaccess 连接Access数据库

2024-07-15 21:17| 来源: 网络整理| 查看: 265

Java 使用 ucanaccess 连接Access数据库 1 创建 Java 项目2 创建 Access 文件3 写测试代码4 获取 Access 数据库的连接对象5 查询测试6 增加测试7 修改测试8 删除测试9 最终结果

如果没有Access的Java驱动包:直接在在 Maven中央仓库 直接搜索 UCanAccess ,然后直接在项目的 pom.xml 中加入依赖。

net.sf.ucanaccess ucanaccess 4.0.4 1 创建 Java 项目

1 使用 IDE (Eclipse 或者 Intellij 等) 创建一个 Java 项目,在项目中添加 UCanAccess 的驱动jar包,或者直接在项目的 pom.xml 中加入依赖。 2 Access 数据库的操作方式和 Oracle、MySQL 的操作方式一样(如果你想使用JDBC封装的操作可以参考 JDBC封装 )。

2 创建 Access 文件

操作1

3 写测试代码

3 下面是我写的用于测试的代码,如果你在项目中使用 Access 作为数据库亦或者只是学习尝试 Access 数据库,你可以在操作数据库时尝试使用预编译(PreparedStatement)来提升数据的安全性。

package com.xu.access; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; /** * * @Title: Access.java * @Package: com.xu.access * @Description: TODO * @author: xuhyacinth * @date: 2019年1月24日 12:47:12 * @version: V-1.0.0 * @Copyright: 2019 xuhyacinth * */ public class Access { /** * Access数据库Connection */ private Connection connection; static { try { Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");//加载ucanaccess驱动 } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } /** * Java 获取 Access 数据库连接(Connection) * * Java 获取 Access 数据库连接(Connection) 注释 * 输入参数参数解释 * pathAccess文件的相对或者绝对路径(支持*.mdb和*.accdb数据库文件) * user用户账号(如果没有就写"") * pwd密码密码(如果没有就写"") * * @param path Access文件的相对或者绝对路径(支持*.mdb和*.accdb数据库文件) * @param user 用户账号(如果没有就写"") * @param pwd 密码密码(如果没有就写"") * @return: Access 的 Connection * @date: 2019年1月24日 12:47:12 */ public Connection getAccessConnection(String path, String user, String pwd) { try { //获取Access数据库连接(Connection) this.connection = DriverManager.getConnection("jdbc:ucanaccess://" + path, user, pwd); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } return this.connection; } public static void main(String[] args) throws Exception { Access access=new Access(); Connection connection = access.getAccessConnection("F:\\Access\\test.accdb", "", ""); access.select(connection); } /** * Access插入(使用了预编译) * * @param connection 连接 * @return 受影响的行数 * @throws Exception 异常 * @date: 2019年1月24日 12:47:12 */ public int insert(Connection connection) throws Exception { // ? 是 JDBC 预编译的占位符 PreparedStatement statement=connection.prepareStatement("insert into student(id,name,address,age) values(?,?,?,?)"); statement.setInt(0, 1);//学生编号 statement.setString(1, "赵六");//学生姓名 statement.setString(2, "湖南省、衡阳市、珠晖区1");//学生住址 statement.setInt(3, 20);//学生年龄 int result = statement.executeUpdate(); statement.close(); connection.close(); return result; } /** * Access删除 * * @param connection 连接 * @return 受影响的行数 * @throws Exception 异常 * @date: 2019年1月24日 12:47:12 */ public int delete(Connection connection) throws Exception { Statement statement = connection.createStatement(); int result = statement.executeUpdate("delete from student where id=3"); statement.close(); connection.close(); return result; } /** * Access更新 * * @param connection 连接 * @return 受影响的行数 * @throws Exception 异常 * @date: 2019年1月24日 12:47:12 */ public int update(Connection connection) throws Exception { Statement statement = connection.createStatement(); int result = statement.executeUpdate("update student set address='湖南省、衡阳市、珠晖区' where id=1"); statement.close(); connection.close(); return result; } /** * Access查询 * * @param connection 连接 * @throws Exception 异常 * @date: 2019年1月24日 12:47:12 */ public void select(Connection connection) throws Exception { Statement statement = connection.createStatement(); ResultSet result = statement.executeQuery("select * from student"); while (result.next()) { System.out.print(result.getString("id") + "\t"); System.out.print(result.getString("name") + "\t"); System.out.print(result.getString("address") + "\t"); System.out.print(result.getString("age") + "\t"); System.out.print(result.getString("birthday") + "\t"); System.out.println(); } statement.close(); connection.close(); } } 4 获取 Access 数据库的连接对象

4 如何获取 Access 数据库的连接,我已经将获取Access数据库的连接封装成为一个方法,你可以直接通过调用这个方法获取Access数据库的连接。 获取连接

5 查询测试 /** * Access查询 * * @param connection 连接 * @throws Exception 异常 * @date: 2019年1月21日 下午8:47:15 */ public void select(Connection connection) throws Exception { Statement statement = connection.createStatement(); ResultSet result = statement.executeQuery("select * from student"); while (result.next()) { System.out.print(result.getString("id") + "\t"); System.out.print(result.getString("name") + "\t"); System.out.print(result.getString("address") + "\t"); System.out.print(result.getString("age") + "\t"); System.out.print(result.getString("birthday") + "\t"); System.out.println(); } statement.close(); connection.close(); }

========》查询数据结果如下 查询

6 增加测试 /** * Access插入(使用了预编译) * * @param connection 连接 * @return 受影响的行数 * @throws Exception 异常 * @date: 2019年1月24日 12:47:12 */ public int insert(Connection connection) throws Exception { // ? 是 JDBC 预编译的占位符 PreparedStatement statement=connection.prepareStatement("insert into student(id,name,address,age) values(?,?,?,?)"); statement.setInt(0, 1);//学生编号 statement.setString(1, "赵六");//学生姓名 statement.setString(2, "湖南省、衡阳市、珠晖区1");//学生住址 statement.setInt(3, 20);//学生年龄 int result = statement.executeUpdate(); statement.close(); connection.close(); return result; }

========》增加数据结果如下 增加

7 修改测试 /** * Access更新 * * @param connection 连接 * @return 受影响的行数 * @throws Exception 异常 * @date: 2019年1月21日 下午8:47:15 */ public int update(Connection connection) throws Exception { Statement statement = connection.createStatement(); int result = statement.executeUpdate("update student set address='广东省、深圳市、南山区' where id=1"); statement.close(); connection.close(); return result; }

========》修改数据结果如下 修改

8 删除测试 /** * Access删除 * * @param connection 连接 * @return 受影响的行数 * @throws Exception 异常 * @date: 2019年1月21日 下午8:47:15 */ public int delete(Connection connection) throws Exception { Statement statement = connection.createStatement(); int result = statement.executeUpdate("delete from student where id=3"); statement.close(); connection.close(); return result; }

========》删除数据结果如下 删除

9 最终结果

结果



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3