我正在做一个大学项目,在这个项目中,我们必须构建一个功能齐全的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"),但我不知道它们到底去了哪里。我尝试了一些方法,使它工作基于其他问题在这里,但没有一个成功地连接到我的数据库在他们的系统。
我做错了什么?
发布于 2019-03-13 17:28:39
我刚刚在db4free.com中创建了一个数据库(这是第一次),我使用了:
jdbc:mysql://db4free.net:3306/database-name
然而,在MySQL 8.x中,最好添加以下参数以避免处理大量警告:
jdbc:mysql://db4free.net:3306/database-name?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false
它立刻就像一种魅力。你确认他们发的邮件了吗?你的账户活跃吗?您正在使用JDBC驱动程序8.x吗?
https://stackoverflow.com/questions/55147748
复制相似问题