gpt4 book ai didi

java - 尝试使用 SQL 插入时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 12:24:54 28 4
gpt4 key购买 nike

我一直在尝试使用 Java 将值插入到我的数据库中。这是我第一次尝试的代码。

Connection conn = null;
if(action.getSource() == btnAddItem)
{
String command =
"INSERT INTO item VALUES (" + itemNo + ", "
+ itemName + ", "
+ costprice + ", "
+ sellingprice + ", "
+ stock + ")";

try
{
this.executeInsert(conn, command); //works
//testPrint(command);
}
catch (SQLException e)
{
e.printStackTrace();
}

}

我使用 testPrint 方法单独检查了 string 命令是否存在问题。但这个方法效果很好。 executeInsert 没有。这是我使用的 executeInsert 方法:

public boolean executeInsert(Connection connection, String command) throws SQLException
{
try
{
Statement st = connection.createStatement();
st.executeUpdate(command);
connection.close();
}
catch (Exception e)
{
System.err.println("Got an exception!");
System.err.println(e.getMessage());
e.printStackTrace();
}
return false;


}
}

由于这不起作用,我浏览了一些教程并发现了PreparedStatement。我尝试按如下方式使用它(没有任何其他方法):

Connection conn = null;
if(action.getSource() == btnAddItem)
{
try
{
String command = "INSERT INTO item VALUES (?, ?, ?, ?, ?)";


PreparedStatement preparedStmt = (PreparedStatement) conn.prepareStatement(command);
preparedStmt.setString (1, itemNo);
preparedStmt.setString (2, itemName);
preparedStmt.setDouble (3, costprice);
preparedStmt.setDouble (4, sellingprice);
preparedStmt.setInt (5, stock);


preparedStmt.execute();
// conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}

}

现在,我有一种预感,我的 Connection conn = null 是问题所在。但我不知道还能将其设置为什么。老实说,我已经尝试了我能做的一切,而且我对 java 中的 SQL 连接部分仍然很陌生。所以你们可以提供的任何帮助或提示都是有很大帮助的。

谢谢。

编辑:这是连接方法。

public Connection getConnection() throws SQLException 
{
Connection conn = null;
Properties connectionProps = new Properties();
connectionProps.put("user", this.userName);
connectionProps.put("password", this.password);

conn = DriverManager.getConnection("jdbc:mysql://"
+ this.serverName + ":" + this.portNumber + "/" + this.dbName,
connectionProps);

return conn;
}

最佳答案

您错过了打开数据库连接初始化步骤。

例如,

// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";

// Database credentials
static final String USER = "username";
static final String PASS = "password";

// Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);

关于java - 尝试使用 SQL 插入时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26441466/

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