0

Friends please suggest a solution

我已经在 Ubuntu 20.04 OS 中使用 eclipse IDE 和 MySql 数据库完成了一个 java swing maven 项目。将项目导出为 Runnable jar(启动配置作为我的主要功能类和选择的库处理单选按钮是将所需的库提取到生成的 jar 中)。

然后,我在 Windows 10 操作系统中打开了可运行的 jar。通过双击主窗口打开,我只能从主窗口的菜单栏中打开 2 个窗口,这两个窗口类没有 sql 连接。所有其他窗口都具有数据库连接并且无法打开。

在 widows 10 中,我安装了 MySql 服务器 8.0.22(使用旧式身份验证方法保留 MySql 5.x 兼容性)和连接器 j 8.0.22,我能够使用查询浏览器访问我的数据库。

我在我的项目中使用 mysql-connector-java 8.0.22 的 maven 依赖项。我的连接类在下面。


public class MysqlConnector {
    Connection con=null;
    public static Connection dbConnector() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306","sarams", "password");
            return con;
    }
        catch (Exception e) {
            return null;
            
        }
             
        }
}     
4

2 回答 2

0

首先确保您已安装所有驱动程序并将其添加到 maven

使用 void 的示例

public class MysqlConnector {

    /**
     * Connect to a sample database
     */
    public static void connect() {
        Connection con = null;
        try {
           // db parameters, where the database is being stored, so it could access it
            String url = "jdbc:mysql://localhost:3306","sarams", "password";
           
            // create a connection to the database
            con = DriverManager.getConnection(url);
    
            System.out.println("Connection to mysql has been established.");
    
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (con != null) {
                    con.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
    
    // establishing connection
    public static void main(String[] args) {
        connect();
    }

使用连接的示例

private Connection connect() {
        // MySQL connection string
        String url = "jdbc:mysql://localhost:3306","sarams", "password";
        Connection con = null;
        try {
            con = DriverManager.getConnection(url);
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
        return con;
    }
于 2020-10-27T10:45:14.283 回答
0

问题解决了,只是java冲突。使用 jdk 11 编译并尝试运行 JRE 1.8。删除了JRE并安装了JDK 11,问题就解决了。

于 2020-10-27T16:24:59.187 回答