将Twitter数据从Java插入MySQL
我想将twitter数据从java插入mySQL。这些是我的代码:将Twitter数据从Java插入MySQL,java,mysql,insert,Java,Mysql,Insert,我想将twitter数据从java插入mySQL。这些是我的代码: java.sql.PreparedStatement stmt = conne.prepareStatement( "INSERT INTO kun(ID,name,statusLocation,text,source)" + "VALUES('"
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,"'");
但问题是不能插入带有单引号(')的tweet。否则将插入
它显示了这个错误
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
感谢您在回复之前的回复,由于以下原因,此操作将不起作用:
stmt.setString(1,“”)将值插入查询中代码>,但查询中没有空格持有人。这就是文本(1>参数数量为0)
异常的原因。这与单一报价无关
stmt.executeUpdate()调用stmt.setString(1,“”)之前的代码>代码>。在执行查询之前,必须设置查询参数
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();
我觉得有点不同。因为我是从twitter上获得数据的,这意味着我必须使用这样的status.getText(),etc1。我知道,我已经尝试了很多方法,但仍然无法奏效。我建议避开单一的引文2。我只是试着切换,但结果还是一样。哦,谢谢你的回复。这与逃避任何引用无关。当您使用
?
占位符并使用setString
方法填充时,PreparedStatement
会自动转义所有必需的字符。哇!它起作用了!这就是我几乎一天都在寻找的东西。非常感谢你!我知道我必须使用PreparedStatement,但我不知道如何使用。非常感谢。不客气。接受它作为关闭它的答案!