java - 将java swing应用程序连接到共享服务器上的ms access db的最佳方法?

标签 java swing ms-access

目前我正在开发一个 java swing 应用程序,我想将其用作 MS Access 数据库上的 CRUD 操作的 GUI。目前,团队中将使用此应用程序的每个人都会更新共享服务器上的电子表格。他们希望切换到更适合其目的的用户界面,并将电子表格转换为数据库。

我计划将可执行 jar 和 ms access 数据库文件放在共享服务器上。这是 Access jar 的地方。

我不希望用户必须搞乱 ODBC 设置。有图书馆可以帮助解决这个问题吗?

更新:Shailendrasingh Patil 下面的建议最适合我。这花了我一些研究,而且设置有点困惑。但我最终让一切都按照我希望的方式进行。我使用 Gradle 引入了使用 UcanAccess 所需的依赖项。

以下是我的 DatabaseController 类的片段:

import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class DatabaseController {

    public DatabaseController() {}

    public void addOperation(String date, String email, String subject, String body) {
    try{
        Connection con = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\user\\Desktop\\TestDatabase.accdb;jackcessOpener=CryptCodecOpener","user", "password");

        String sql = "INSERT INTO Email (Date_Received, Email_Address, Subject, Message) Values " +
                "('"+date+"'," +
                "'"+email+"'," +
                "'"+subject+"'," +
                "'"+body+"')";

        Statement statement = con.createStatement();
        statement.execute(sql);
    }
    catch (Exception e) {
        JOptionPane.showMessageDialog(null, e.getMessage(),"Error",
                JOptionPane.ERROR_MESSAGE);
        e.printStackTrace();
    }
}
}

还需要以下类:

import java.io.File;
import java.io.IOException;
import com.healthmarketscience.jackcess.CryptCodecProvider;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import net.ucanaccess.jdbc.JackcessOpenerInterface;

public class CryptCodecOpener implements JackcessOpenerInterface {
public Database open(File fl,String pwd) throws IOException {
    DatabaseBuilder dbd =new DatabaseBuilder(fl);
    dbd.setAutoSync(false);
    dbd.setCodecProvider(new CryptCodecProvider(pwd));
    dbd.setReadOnly(false);
    return dbd.open();
}
}

对于错误的缩进,我深表歉意。

最佳答案

您应该使用 UCanAccess 驱动程序连接到 MS-Access。它是纯粹基于 JDBC 的,您不需要 ODBC 驱动程序。 引用示例here

关于java - 将java swing应用程序连接到共享服务器上的ms access db的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45122245/

相关文章:

java - 在 OneToMany JPA 中更新父级时正在创建新的子实体

java - 向旧版 Swing 应用程序添加触摸手势

ms-access - 尝试连接 Access 数据库的 vbscript 错误

sql-server - MS Access 查询设计因与 SQL Server 的连接而挂起

java - 有没有办法在没有 CellEditor 的情况下选择 JTable 中单元格中的所有文本?

使用 FROM 子句中的子查询进行联接操作中的 SQL 语法错误

java - 如何正确处理服务器端和客户端的时间节省问题

java - 行为或 Java 数组

java - 是否可以使用 CDI 注入(inject) EJB 实现而不是其接口(interface)?

java - JTextArea 占用大量内存