gpt4 book ai didi

Java 无法连接到本地主机上的 MariaDB 数据库

转载 作者:行者123 更新时间:2023-12-01 20:04:44 25 4
gpt4 key购买 nike

我正在尝试连接到本地主机上的 MariaDB 数据库(使用 xampp)。第一次连接时,连接建立,我设法创建一个包含两个字段“用户名”“密码”的表。此后,当我尝试执行其他操作时,连接将变为空,并且我无法插入或执行任何查询。

import java.sql.*;

class MyDatabase {
private Connection conn;
private PreparedStatement psAddPerson;


MyDatabase(String host, String user, String password) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:mariadb:" + host,
user, password);
psAddPerson = null;
}

public void addPerson(String username, String password) {
try{
if( psAddPerson == null ){
String sqlAddPerson = "insert into users (usern, pass) values (?,?)";
psAddPerson = conn.prepareStatement(sqlAddPerson);
}
psAddPerson.setString(1, username);
psAddPerson.setString(2, password);
psAddPerson.executeUpdate();
} catch (SQLException e) {
System.err.println("Couldn't create add person");
e.printStackTrace();
}
}
}

public class Main {
public static void main(String[] args) {
String host = "//localhost:3306/test";
String user = "root";
String pass = "";
MyDatabase newDb = null;
try {
newDb = new MyDatabase(host, user, pass);
} catch (Exception e) {
e.printStackTrace();
}

String username = "admin";
String password = "password";
if (newDb != null) {
newDb.addPerson(username, password);
}
}
}

当尝试执行以下代码时,此代码会产生 NullPointerException:

psAddPerson = conn.prepareStatement(sqlAddPerson);

我希望能够对本地主机数据库执行查询。

图片来自 phpMyAdmin 服务器类型: Picture of server type

谢谢

最佳答案

更改此:

Connection conn = DriverManager.getConnection("jdbc:mariadb:"+ 主机、用户、密码);

通过这个:

conn = DriverManager.getConnection("jdbc:mariadb:"+ 主机、用户、密码);

这样您就可以在构造函数中实例化实例变量而不是局部变量。

希望这有帮助!

关于Java 无法连接到本地主机上的 MariaDB 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47607228/

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