将 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).
感谢之前的回复
这不会起作用,原因如下:
- 您正在尝试使用
stmt.setString(1,"'");
向查询中插入值,但查询中没有空格符。这就是文本 (1 > number of parameters, which is 0)
异常的原因。这与单引号无关。
- 您在调用
stmt.setString(1,"'");
之前调用了 stmt.executeUpdate();
。您必须在执行查询之前设置查询参数。
- 您的查询有误。您指定了 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();
我想插入从 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).
感谢之前的回复
这不会起作用,原因如下:
- 您正在尝试使用
stmt.setString(1,"'");
向查询中插入值,但查询中没有空格符。这就是文本(1 > number of parameters, which is 0)
异常的原因。这与单引号无关。 - 您在调用
stmt.setString(1,"'");
之前调用了stmt.executeUpdate();
。您必须在执行查询之前设置查询参数。 - 您的查询有误。您指定了 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();