Java 连接Access数据库的两种方式

那我来讲解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技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • java中JSONArray互相转换List的实现

    Java中JSONArray和List的互相转换,可以使用JSON库中的方法来实现。下面我将详细讲解该转换的完整攻略,并提供两个示例。 JSONArray转List 1. 使用GSON库 首先需要引入GSON库的依赖,可以在maven中添加以下依赖: xml <dependency> <groupId>com.google.code.…

    Java 2023年5月26日
    00
  • springBoot2.X配置全局捕获异常的操作

    本文主要介绍如何使用 Spring Boot 2.x 配置全局的异常处理器。具体的步骤如下: 步骤一:新建异常处理器 首先,我们需要新建一个异常处理器类 GlobalExceptionHandler,该类需要实现 ErrorController 接口和 @RestControllerAdvice 注解。代码如下: @RestControllerAdvice …

    Java 2023年5月27日
    00
  • Spring Cloud 中@FeignClient注解中的contextId属性详解

    当我们使用Spring Cloud中的FeignClient进行服务间调用时,我们可以在@FeignClient注解中,定义contextId属性,用于指定当前FeignClient的contextId,以便区分不同的FeignClient实例。 具体来说,contextId属性的作用有如下两个: 当我们使用了相同FeignClient接口的多个实例时,使用…

    Java 2023年5月31日
    00
  • Java Web开发环境配置详解

    Java Web开发环境配置详解 简介 本文旨在为Java开发者提供一个完整的Java Web开发环境的配置攻略,包括Java JDK、Eclipse IDE、Tomcat服务器和Maven项目管理工具的安装和配置,并提供两个示例来演示如何使用配置好的环境来进行Java Web开发。 Java JDK安装与配置 下载并安装Java JDK。在Oracle官网…

    Java 2023年5月19日
    00
  • BeanUtils.copyProperties在拷贝属性时忽略空值的操作

    BeanUtils.copyProperties方法是Apache Commons BeanUtils库中非常常用的方法之一,它用于将一个JavaBean的属性值拷贝到另一个JavaBean中。 默认情况下,当源JavaBean的某个属性值为null时,调用BeanUtils.copyProperties方法会将目标JavaBean相应属性的值也设置为nul…

    Java 2023年6月15日
    00
  • IDEA Maven Mybatis generator 自动生成代码(实例讲解)

    下面是详细讲解“IDEA Maven Mybatis generator 自动生成代码(实例讲解)”的完整攻略。 简介 Maven Mybatis generator 是一种可以帮助开发者自动生成 Mybatis 相关代码的工具。它可以根据数据库表的结构,自动生成实体类、Mapper 接口以及 XML Mapper 文件,大大提高了代码编写的效率。 本攻略将…

    Java 2023年5月19日
    00
  • Spring源码系列(补充):详解ApplicationContext

    前言 在之前的文章中,我们已经对Spring源码中的一些核心概念进行了分析。由于篇幅限制,我们并没有详细解释ApplicationContext类所继承的父接口及其作用。因此,本文将单独为ApplicationContext进行详细说明,包括其继承的父接口及其作用。 ApplicationContext父接口 MessageSource 大家应该都比较熟悉M…

    Java 2023年4月22日
    00
  • Mybatis 查询语句条件为枚举类型时报错的解决

    针对问题“Mybatis 查询语句条件为枚举类型时报错”的解决,可以采取以下步骤: 1. 确认报错信息 在解决问题之前,需要先确认报错信息。针对“Mybatis 查询语句条件为枚举类型时报错”的情况,通常表现为: org.apache.ibatis.exceptions.PersistenceException: ### Error querying dat…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部