如何避免MySQLSyntaxErrorException

时间:2012-05-18 15:23:26

标签: java mysql exception

我正在使用Java将一些数据插入到mysql中。但是将撇号(标点符号)放入数据(附近的每周跟踪器表明作业增长)它给了我MySQLSyntaxErrorException。请给我适当的解决方案来处理

代码我有isa

void insert(String a1,String a2, String a3) {
  String nt = a2;
  String pt = a3;
  String tb = a1; 
  query = "insert into "+tb+"(head,des) values('"+nt+"','"+pt+"')"; 
  try {
    stmt.executeUpdate(query);
    System.out.println("inserted"); //con.close();
  } catch (SQLException ex) {
    // Logger.getLogger(conec.class.getName()).log(Level.SEVERE, null, ex);
    ex.printStackTrace();
  }
}

2 个答案:

答案 0 :(得分:6)

Use query parameters,不是字符串连接。这将允许数据库驱动程序格式化您发送到数据库服务器的值,而不是自己重新发明此轮。

String sql = "insert into ... values (?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, nt);
stmt.setString(2, pt);
stmt.executeUpdate();

答案 1 :(得分:1)

query = "insert into "+tb+"(head,des) values('"+nt+"','"+pt+"')";

应该是

query = "insert into "+tb+" (head, des) values ('"+nt+"','"+pt+"')";

请进行这些更改,如果仍有问题请告诉我....