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日

相关文章

  • Spark学习笔记之Spark SQL的具体使用

    Spark学习笔记之Spark SQL的具体使用 简介 Spark SQL是Spark提供的分布式SQL查询引擎,通过Spark SQL,我们可以使用SQL语法来查询非关系型数据、结构化数据、CSV文件等。Spark SQL目前支持Hive查询语法和Spark SQL语法,也允许用户进行自定义函数、聚合函数等操作。 安装 要使用Spark SQL,我们需要先…

    Java 2023年5月26日
    00
  • Struts2 OGNL表达式实例详解

    Struts2 OGNL表达式实例详解 1. 什么是OGNL OGNL即Object-Graph Navigation Language,是一个强大的表达式语言,它可以对Java对象进行操作并获取想要的数据,Struts2框架中使用OGNL表达式引擎来解析前端传递的参数,同时也支持在配置文件中使用OGNL表达式。 2. OGNL表达式语法 OGNL表达式的语…

    Java 2023年5月20日
    00
  • JAVA ArrayList详细介绍(示例)

    下面是关于“JAVA ArrayList详细介绍(示例)”的完整攻略。 ArrayList介绍 在Java中,ArrayList是一个动态数组,可以根据需要动态地扩展其大小。与Java数组不同,在ArrayList中,项目的插入和删除时无需移动其他项目。ArrayList类在内部使用一个数组来存储它的元素,它的大小通过构造函数在创建时确定,如果在添加时元素的…

    Java 2023年5月26日
    00
  • 浅谈StringEntity 和 UrlEncodedFormEntity之间的区别

    十分感谢您对本网站的关注,下面是关于 “浅谈StringEntity 和 UrlEncodedFormEntity之间的区别” 的详细讲解。 StringEntity 和 UrlEncodedFormEntity 介绍 StringEntity 和 UrlEncodedFormEntity 是 Apache HttpClient 中两种常见的 HttpEnt…

    Java 2023年5月20日
    00
  • Java SpringBoot快速集成SpringBootAdmin管控台监控服务详解

    Java SpringBoot快速集成SpringBootAdmin管控台监控服务 简介 Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源软件,通过 Spring Boot 的自动配置,只需要添加一个或者几个依赖就可以快速实现应用程序的管控台监控。 在本文中,我们将介绍如何快速集成 Spring Boot Ad…

    Java 2023年5月19日
    00
  • tomcat启动不了一闪而过怎么办?tomcat一闪而过无法启动现象的解决方法

    当Tomcat启动时,若一闪而过无法启动,则很可能出现以下问题: Java环境未配置正确,或者Java环境变量未正确设置 Tomcat配置文件中的端口号已被占用 Tomcat安装路径中的文件丢失或损坏 Tomcat版本与当前Java版本不匹配 为解决tomcat无法启动问题,请根据以下步骤: 1. 检查Java环境配置 在cmd命令行工具中输入java –v…

    Java 2023年5月19日
    00
  • Spring Boot如何排除自动加载数据源

    如果在使用Spring Boot时没有启用JPA或其他ORM库,则会默认加载数据源。但是,在某些情况下,您可能不想加载数据源。幸运的是,Spring Boot提供了几种方法来排除自动加载数据源。 方法一:使用 exclude 属性 在 application.properties 中,可以使用 spring.autoconfigure.exclude 属性来…

    Java 2023年5月20日
    00
  • Java非法字符: ‘\ufeff‘问题及说明

    问题描述当编写Java程序时,有时会出现“Java非法字符: ‘\ufeff‘问题及说明”提示,使得程序无法正常编译或运行。该问题的发生是由于程序中含有UTF-8编码的BOM头,导致Java编译器无法识别,从而报错。 解决步骤要解决该问题,可以按照以下步骤进行处理: 步骤一:打开文本编辑器,将Java程序的文件转换成不含BOM头的UTF-8编码格式。可以使用…

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