gpt4 book ai didi

java - 如何将NULL值赋给一个字符串,然后将它插入到mysql数据库中

转载 作者:可可西里 更新时间:2023-11-01 09:00:48 25 4
gpt4 key购买 nike

这里我计算的是一列的平均值如果 avg 变为 0.0,那么我想将字符串变量分配为 NULL,否则为 avg 值本身。

这些值被存储在 mysql 数据库中现在我的问题是,当 avg 确实达到 0.0 时,字符串 NULL 被存储,但我希望默认 NULL 值存储在其中。

如何将 NULL(而不是字符串 NULL)分配给变量 ans?

private void btnAdd1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
// TODO add your handling code here:
Connection conn = null;
Statement st = null;
ResultSet rs = null;

try{

conn = DriverManager.getConnection("jdbc:mysql://localhost/check","root","");
st = conn.createStatement();

String sql4 =("SELECT AVG(unit4) as num FROM lo where unit4 IS NOT NULL");
PreparedStatement pstmt3 = conn.prepareStatement(sql4);
ResultSet rs4 = pstmt3.executeQuery();
rs4.next();
double a3 = rs4.getDouble("num");
double b3 = Math.round(a3*10);
double res5 = b3/10;
rs4.next();
avg1.setText(String.valueOf(res5));
String a1 =avg1.getText();
String ans ;

if(a1.equals("0.0")){
ans = null;
}else{
ans = a1;
}

String query = "INSERT INTO chk(id) VALUES ('"+ans+"')";
executeSQlQuery(query, "Inserted");

}

最佳答案

您可以使用 setNull() 并避免任何语法错误或 SQL 注入(inject),您必须改用 PreparedStatement :

PreparedStatement ps = connection.prepareStatement("INSERT INTO chk(id) VALUES (?)");
ps.setNull(1, java.sql.Types.VARCHAR);
ps.executeUpdate();

注意

你的程序中有一些东西,为什么你要使用 rs4.next(); 如果你的结果是空的怎么办,我认为你需要这样的东西:

if (rs4.next()) {//<<<--------------------
double a3 = rs4.getDouble("num");
//-----------^^-----------------
}

关于java - 如何将NULL值赋给一个字符串,然后将它插入到mysql数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43424850/

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