Вы не импортировали DBConnect
в своем классе, поэтому компилятор не знает, где найти DBConnect
или что это такое.
Вам также нужно сделать это, иначе это приведет кa SQLException
:
try {
dbConnect = new DBConnect(ConnectionString, UserName, Password);
} catch (SQLException e) {
e.printStackTrace();
}
Также попробуйте реализовать Singleton Pattern при соединении с базой данных. Это действительно удобно для отслеживания.
Вот как я это сделал в одном из моих старых проектов:
DatabaseConnection.java
package com.stackoverflow.utility;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.stackoverflow.constant.Credentials;
public class DatabaseConnection implements Credentials {
private static DatabaseConnection database;
Connection connection;
public static DatabaseConnection getDatabase() {
if (database == null) {
database = new DatabaseConnection();
}
return database;
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
if (connection == null || connection.isClosed()) {
Class.forName(JDBC_DRIVER);
connection = DriverManager.getConnection(DB_URL, USER, PWD);
}
return connection;
}
}
CloseConnection.java
package com.stackoverflow.utility;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class CloseConnection {
public static void close(ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(PreparedStatement preparedStatement) {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Connection connection) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(PreparedStatement preparedStatement, ResultSet resultSet) {
close(resultSet);
close(preparedStatement);
}
}
Credentials.java
package com.stackoverflow.constant;
public interface Credentials {
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; // Database driver
static final String DB_URL = "jdbc:mysql://116.72.10.78:3352/MohitDB"; // Database url
// Database credentials
static final String USER = "user";
static final String PWD = "password";
}
Queries.java
package com.stackoverflow.constant;
public interface Queries {
public static final String AUTHENTICATION_QUERY = "SELECT * FROM TableUser WHERE username = ? AND password = ?";
}
Метод аутентификации
public boolean getAuthentication(Login login) {
try {
PreparedStatement preparedStatement = DatabaseConnection.getDatabase().getConnection()
.prepareStatement(AUTHENTICATION_QUERY);
preparedStatement.setString(1, login.getUsername());
preparedStatement.setString(2, login.getPassword());
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
close(preparedStatement, resultSet);
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}