Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入件工作不正常_Java_Mysql_Jdbc - Fatal编程技术网

Java 插入件工作不正常

Java 插入件工作不正常,java,mysql,jdbc,Java,Mysql,Jdbc,我的应用程序中有以下代码 public int insert_dependente(Dependente dependente) { ResultSet r; int result = 0; if (!(dependente == null)) { try { Connection conn = new Conexao().getConnection(); String sql = "insert i

我的应用程序中有以下代码

    public int insert_dependente(Dependente dependente) {
    ResultSet r;
    int result = 0;
    if (!(dependente == null)) {
        try {
            Connection conn = new Conexao().getConnection();
            String sql = "insert into Dependente "
                    + "(IdAssoc,"
                    + "NomeDep,"
                    + "SobrenomeDep,"
                    + "RgDep,"
                    + "CpfDep,"
                    + " DtNascDep,"
                    + " emailDep,"
                    + " tipoDep,"
                    + " DtCriacaoDep)"
                    + " VALUES (" + dependente.getAssociado() + ","
                    + "'" + dependente.getNome() + "',"
                    + "'" + dependente.getSobrenome() + "',"
                    + "'" + dependente.getRg() + "',"
                    + "'" + dependente.getCpf() + "',"
                    //+ new java.sql.Date(dependente.getNascimento().getTime()).toString() + ","
                    + "'" + dependente.getEmail() + "',"
                    + "'" + dependente.getTipoDep() + "'";
                    //+ new java.sql.Date(new java.util.Date().getTime()).toString() + ")";
            Statement state; 
            state = conn.createStatement();
            state.execute(sql);
            state.close();

            String sql2 = "SELECT IdDep FROM Dependente WHERE CpfDep = " + dependente.getCpf();
            state = conn.createStatement();
            r = state.executeQuery(sql2);
            while (r.next()) {
                result = r.getInt("idAssoc");
            }
            r.close();
            state.close();
            conn.close();
        } catch (SQLException ex) {
            Logger.getLogger(DependenteDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return result;
}
问题是这些值从未插入到我的数据库中。 当系统到达生产线时

state.execute(sql);
系统忽略了一切,直接跳到了终点

return result;
我什么都试过了,但找不到我的错误。
有人能帮我吗?

您在INSERT语句的末尾注释掉了括号:

 String sql = "insert into Dependente "
     + "(IdAssoc,"
     + "NomeDep,"

    ...

    //+ new java.sql.Date(new java.util.Date().getTime()).toString() + ")";
这就是为什么会出现
SQLException
并且代码执行被中断的原因。您甚至可以将异常传递给日志记录器,您应该能够在日志中找到它:

Logger.getLogger(DependenteDAO.class.getName()).log(Level.SEVERE, null, ex);
请改用此代码:

String sql = "insert into Dependente "
    + "(IdAssoc,"
    + "NomeDep,"
    + "SobrenomeDep,"
    + "RgDep,"
    + "CpfDep,"
    + " DtNascDep,"
    + " emailDep,"
    + " tipoDep,"
    + " DtCriacaoDep)"
    + " VALUES (" + dependente.getAssociado() + ","
    + "'" + dependente.getNome() + "',"
    + "'" + dependente.getSobrenome() + "',"
    + "'" + dependente.getRg() + "',"
    + "'" + dependente.getCpf() + "',"
    + "'" + dependente.getEmail() + "',"
    + "'" + dependente.getTipoDep() + "')";

您注释掉了INSERT语句末尾的括号:

 String sql = "insert into Dependente "
     + "(IdAssoc,"
     + "NomeDep,"

    ...

    //+ new java.sql.Date(new java.util.Date().getTime()).toString() + ")";
这就是为什么会出现
SQLException
并且代码执行被中断的原因。您甚至可以将异常传递给日志记录器,您应该能够在日志中找到它:

Logger.getLogger(DependenteDAO.class.getName()).log(Level.SEVERE, null, ex);
请改用此代码:

String sql = "insert into Dependente "
    + "(IdAssoc,"
    + "NomeDep,"
    + "SobrenomeDep,"
    + "RgDep,"
    + "CpfDep,"
    + " DtNascDep,"
    + " emailDep,"
    + " tipoDep,"
    + " DtCriacaoDep)"
    + " VALUES (" + dependente.getAssociado() + ","
    + "'" + dependente.getNome() + "',"
    + "'" + dependente.getSobrenome() + "',"
    + "'" + dependente.getRg() + "',"
    + "'" + dependente.getCpf() + "',"
    + "'" + dependente.getEmail() + "',"
    + "'" + dependente.getTipoDep() + "')";

我假设,执行SQL语句会引发异常。它应该在日志中的某个地方,因为您捕获它并记录它


原因:SQL insert语句缺少右括号:)

除此之外,使用
PreparedStatement
更容易、更安全,而不是通过编程将几个变量中的最终SQL语句连接起来(原因请参见):


我假设,执行SQL语句会引发异常。它应该在日志中的某个地方,因为您捕获它并记录它


原因:SQL insert语句缺少右括号:)

除此之外,使用
PreparedStatement
更容易、更安全,而不是通过编程将几个变量中的最终SQL语句连接起来(原因请参见):


您的SQL insert语句缺少右括号!您的SQL insert语句缺少右括号!