繁体   English   中英

如何使用JDBC将Java应用程序连接到db4free.net?

[英]How to connect a Java application to db4free.net using JDBC?

我正在做一个大学项目,我们必须构建一个功能全面的Java应用程序,并使用JDBC使用基本的用户登录系统来完成该应用程序。

通过本地主机在XAMPP的MariaDB MySQL分支上使用时,基本的用户登录系统工作正常。

显然,该系统无法在该特定网络之外运行,因此我四处寻找使我能够始终在线托管MySQL数据库的方法,因此无论我走到哪里,这个基本的用户登录系统都可以正常工作,并且可以显示为任何有兴趣的人。

然后,我找到了db4free.net,到目前为止一切都按顺序进行-PHPMyAdmin可以正常工作,并且我成功地使用用户名和密码将数据库从本地主机版本导出和导入到db4free的版本。

但是我在如何实际指向我的应用程序以连接到db4free的系统方面遇到麻烦,因此登录系统可以按预期工作。

这是处理连接的“连接模块” Java类:

package com.fixer.dal;

import java.sql.*;

public class Connection_Module {
    public static Connection connector(){
        java.sql.Connection cnx = null;
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://db4free.net:3306/db_fixer";
        String user = "myuser";
        String password = "mypassword";

        try {
            Class.forName(driver);
            cnx = DriverManager.getConnection(url, user, password);
            return cnx;
        } catch (Exception e) {
            return null;            
        }
   }
}

这是用于检查数据库以查看用户名和密码是否与记录的数据匹配的函数(如果匹配,则关闭登录屏幕并打开“主”屏幕):

Connection cnx = null;
PreparedStatement pst = null;
ResultSet rs = null;

public void login(){

    String sql = "select * from usertable where username=? and password=?";
    try {
        pst = cnx.prepareStatement(sql);
        pst.setString(1, Screen_Login_Username_Field.getText());
        pst.setString(2, Screen_Login_Password_Field.getText());
        rs = pst.executeQuery();
        if(rs.next()){
            Screen_Main Main = new Screen_Main();
            Main.setVisible(true);
            this.dispose();
            cnx.close();
        }else{
            JOptionPane.showMessageDialog(null, "Invalid user or password.");
        }
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

}

这主要是我的问题。 db4free.net给了我一个主机(“ db4free.net”)和一个端口(“ 3306”),但是我不知道它们到底在哪里。 我尝试了一些方法来使它根据此处的其他问题运行,但没有一个方法成功地将我连接到他们系统上的数据库。

我究竟做错了什么?

我刚刚在db4free.com中创建了数据库(第一次),并且使用了:

  1. MySQL 8.x JDBC驱动程序(我使用了JDBC驱动程序8.0.11)。

  2. 网址是:

jdbc:mysql://db4free.net:3306 / 数据库名称

但是,在MySQL 8.x中,最好添加以下参数以避免处理大量警告:

jdbc:mysql://db4free.net:3306 / 数据库名称 ?useUnicode = true&useJDBCCompliantTimezoneShift = true&useLegacyDatetimeCode = false&serverTimezone = UTC&useSSL = false

它像魅力一样立刻发挥作用。 您确认他们发送的电子邮件了吗? 您的帐户有效吗? 您是否正在使用JDBC驱动程序8.x?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM