gpt4 book ai didi

java - 从 java 设置 MySql 连接的问题

转载 作者:行者123 更新时间:2023-11-30 21:27:25 25 4
gpt4 key购买 nike

在 Netbeans 11.1 中,我试图将我的 Java Maven 代码连接到 MySql 数据库,但每次我尝试根据 Internet 教程设置连接时,我都会遇到错误。我在 Dependencies 文件夹中有 mysql-connector-java-8.0.17.jar。我是 Java 的新手,我的高级项目团队成员在确定连接时也遇到了问题。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class NewJFrame extends javax.swing.JFrame {

//connect to DB
private final String ConnectionString = "jdbc:mysql://54.235.42.66:3306/CIS470db";
private final String UserName = "team6";
private final String Password = "CIS470team6";
//next line has error
private final DBConnect dbConnect;
//next line has error
dbConnect = new DBConnect(ConnectionString, UserName, Password);

第一个错误:找不到标志 符号:类 DBConnect

位置:NewJFrame 类

第二个错误: 预计

找不到符号 符号:类 DBConnect

位置:NewJFrame 类

最佳答案

您还没有在您的类中导入 DBConnect,这就是编译器不知道在哪里可以找到 DBConnect 甚至不知道它是什么的原因。

您还需要这样做,否则会导致 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";
}

查询.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;
}

关于java - 从 java 设置 MySql 连接的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58211533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com