在查询浏览器中运行时,插入查询无法在代码中工作??? MYSQL Java代码

时间:2012-01-05 04:59:30

标签: java mysql insert insert-update

嗨我想在表格中插入数据,我的代码是,

{
    StringBuilder html = new StringBuilder();
    InsertData="INSERT INTO  nagios.authors VALUES ('1','1','67','0','0','1','10','0','1','2012-01-03 12:50:49','108929','2012-01-03 12:50:59','198963','21','','/usr/local/nagios/libexec/check_ping -H 192.168.1.106 -w 3000.0,80% -c 5000.0,100% -p 5','30','0','4.04159','0.102','1','PING WARNING -DUPLICATES FOUND! Packet loss = 0%, RTA = 2.86 ms','','rta=2.860000ms;3000.000000;5000.000000;0.000000pl=0%;80;100;0');";
    html.append("Data Inserted : "+ GetUpdate(InsertData) );
    return html 
}

        public int GetUpdate(String sql)
        {        
           int rs = dbOperation.DbupdateStatement(con,sql);      
            return rs;
        }

        public int DbupdateStatement(Connection con,String command)
        {
            int status =0;
            if (con != null)
            {
                try
                {
                Statement stmt = con.createStatement();
                String sql=command;
                //status = stmt.executeUpdate(command);
                return stmt.executeUpdate(sql);
            }
                catch(Exception ex)
                {

                }
            }
            return status;

        }

第一个方法是在jsp上返回html以打印“executeupdate”的返回值,同时将查询传递给Getupdate,然后使用DbUpdateStatement方法执行查询,同时连接到我连接到数据库的连接并具有完全写入创建和更新数据库我的这个方法是不插入值?

希望你的建议......

提前致谢!

5 个答案:

答案 0 :(得分:0)

试试这个

InsertData="INSERT INTO  authors VALUES ('1','1','67','0','0','1','10','0','1','2012-01-03 12:50:49','108929','2012-01-03 12:50:59','198963','21','','/usr/local/nagios/libexec/check_ping -H 192.168.1.106 -w 3000.0,80% -c 5000.0,100% -p 5','30','0','4.04159','0.102','1','PING WARNING -DUPLICATES FOUND! Packet loss = 0%, RTA = 2.86 ms','','rta=2.860000ms;3000.000000;5000.000000;0.000000pl=0%;80;100;0');";

您不需要在MySql数据库中使用表名指定模式名称。模式名称仅在查询浏览器中编写。

答案 1 :(得分:0)

在代码中不再需要JDBC资源并编写参数sql语句时,应该释放它们。

String sql="INSERT INTO TableName (col1,col2,col3) values (?,?,?)";
PreparedStatement ps=null;
try{
 ps=con.prepareStatement(sql);
 ps.setString(1,"String_value for col1");
 ps.setInt(2,10); // set int value to col2 if it is int type
 ps.setString(3,"something");
 ps.executeUpdate();
}catch(Exception ex) {

}finally {
  if(ps!=null) ps.close();
  if(con!=null) con.close();
}

答案 2 :(得分:0)

只是抛出我的猜测....你可以尝试删除或跳过以下某个值中的逗号。可能是逗号破坏了你的查询......

'/usr/local/nagios/libexec/check_ping -H 192.168.1.106 -w 3000.0,80% -c 5000.0,100% -p 5'

答案 3 :(得分:0)

检查mysql数据库中的autocommit设置。或明确提交。 con.commit

答案 4 :(得分:0)

  1. catch(Exception ex){} 打印异常堆栈trace.by添加

    ex.printStacktrace(); 你可以获得例外细节然后你可以解决。

  2. 2.另一件事

    INSERT INTO  nagios.authors VALUES ('1','1','67','0','0','1','10','0','1','2012-01-03 12:50:49','108929','2012-01-03 12:50:59','198963','21','','/usr/local/nagios/libexec/check_ping -H 192.168.1.106 -w 3000.0,80% -c 5000.0,100% -p 5','30','0','4.04159','0.102','1','PING WARNING -DUPLICATES FOUND! Packet loss = 0%, RTA = 2.86 ms','','rta=2.860000ms;3000.000000;5000.000000;0.000000pl=0%;80;100;0');";
    

    是否包含表格的所有列,请检查。

    3.请检查wether sql query是否通过手动运行成功将数据插入表中 sql编辑器。