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

标签 java mysql jdbc xampp netbeans-8

这里我计算的是一列的平均值 如果 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/

相关文章:

java - 如果生成器(例如 UUID 的 Java 版本)未知,UUID 的哪些数字最不可能发生冲突?

java - 如何发现执行的 SQL 查询没有返回任何内容?

jdbc - JDBC 连接文件可以包含计算属性吗?

Java Swing : Do something while the key is being pressed

java - 如何删除 JTextField 上的 MouseListener/ActionListener

mysql - 根据另一个表中的值在一个表中最多选择 3 个不同的字段?

MySQL与内部IP的连接问题

java - 使用 Java 将变量、数组插入 MySQM 数据库

java - 部署maven项目时出现依赖异常

php - 如何在 PHP 中使用 Switch 语句和 FORM Post 来更新、搜索和插入 SQL 数据库?