我正在做一个大学项目,我们必须构建一个功能全面的Java应用程序,并使用JDBC使用基本的用户登录系统。
通过localhost在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”),但是我不知道它们到底在哪里。我尝试了一些方法来使它根据此处的其他问题运行,但没有一个方法可以成功地将我连接到他们系统上的数据库。
我在做什么错了?
答案 0 :(得分:2)
我刚刚在db4free.com中创建了数据库(第一次),并且使用了:
MySQL 8.x JDBC驱动程序(我使用JDBC驱动程序8.0.11)。
URL为:
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吗?