将 Twitter 数据从 Java 插入到 MySQL

Insert Twitter Data from Java to MySQL

我想插入从 java 到 mySQL 的推特数据。这些是我的代码:

java.sql.PreparedStatement stmt = conne.prepareStatement(
                            "INSERT INTO kun(ID,name,statusLocation,text,source)"                       
                            + "VALUES('"                                 
                            + "','" + status.getUser().getScreenName()
                            + "','" + user.getLocation()
                            + "','" + status.getText()
                            + "','" + status.getSource()
                            + "')");
stmt.executeUpdate();
stmt.setString(1,"'");

但问题是无法插入带有单引号 (') 的推文。否则插入。

显示这个错误

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

感谢之前的回复

这不会起作用,原因如下:

  1. 您正在尝试使用 stmt.setString(1,"'"); 向查询中插入值,但查询中没有空格符。这就是文本 (1 > number of parameters, which is 0) 异常的原因。这与单引号无关。
  2. 您在调用 stmt.setString(1,"'"); 之前调用了 stmt.executeUpdate();。您必须在执行查询之前设置查询参数。
  3. 您的查询有误。您指定了 5 列,但只给出了 4 列的值(ID 列没有值)。如果您的数据库架构中的 ID 列设置为 AUTO_INCREMENT,这可能会起作用。

将您的代码更改为:

java.sql.PreparedStatement stmt = conne.prepareStatement(
  "INSERT INTO kun(name,statusLocation,text,source) VALUES(?,?,?,?)");
stmt.setString(1, status.getUser().getScreenName());
stmt.setString(2, user.getLocation());
stmt.setString(3, status.getText());
stmt.setString(4, status.getSource());
stmt.executeUpdate();