Как подключить приложение Java к db4free.net с помощью JDBC? - PullRequest
0 голосов
/ 13 марта 2019

Я делаю проект для колледжа, в котором мы должны создать полностью работающее Java-приложение, в комплекте с базовой системой входа пользователя с использованием JDBC.

Базовая система входа пользователя работает нормально, когда используется на MariaDB MySQL XAMPP.ветвление через localhost.

Очевидно, что система не будет работать вне этой конкретной сети, поэтому я искал способы, позволяющие мне постоянно размещать базу данных MySQL в сети, поэтому независимо от того, куда я иду, этоБазовая система входа пользователей работает и может быть показана всем, кто интересуется.

Затем я нашел db4free.net, и пока все выглядит по-порядку - работает PHPMyAdmin, и мне удалось успешно экспортировать и импортировать базу данных с помощьюимена пользователей и пароли от версии localhost до версии db4free.

Но у меня возникают проблемы с тем, как на самом деле указать приложению, чтобы оно подключалось к системам db4free, чтобы система входа работала как задумано.

Воткласс Java "модуль подключения", который обрабатывает соединение1011 *

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"), но я не знаю точно, куда они идут.Я попробовал некоторые методы, чтобы заставить его работать, основываясь на других вопросах, но ни один не смог успешно подключить меня к моей базе данных в их системах.

Что я делаю не так?

1 Ответ

2 голосов
/ 13 марта 2019

Я только что создал базу данных (впервые) в db4free.com и использовал:

  1. Драйвер JDBC MySQL 8.x (я использовал драйвер JDBC 8.0.11).

  2. URL-адрес:

JDBC: MySQL: //db4free.net: 3306 / -имя базы данных

Однако в MySQL 8.x лучше добавить следующие параметры, чтобы избежать обработки множества предупреждений:

JDBC: MySQL: //db4free.net: 3306 / базы данных имя useUnicode = истина и useJDBCCompliantTimezoneShift = истина & useLegacyDatetimeCode = ложь и serverTimezone = UTC & UseSSL = ложь

Это сработало как шарм сразу. Вы подтвердили письмо, которое они отправили? Ваш аккаунт активен? Вы используете драйвер JDBC 8.x?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...