我有一个包含字符串的sqlite数据库。我正在从javafx界面读取这些字符串。一切都很顺利,但我的问题是当我尝试用撇号读取字符串时。我读取字符串的代码如下:
String sql = "select * from Questions where Subject = ? and Grade = ? and Level = ? and questionId = ?";
PreparedStatement pst = gui.connectionQuestions.prepareStatement(sql);
pst.setString(1,gui.textSubjectQTest);
pst.setString(2,gui.showGradeLabel.getText());
pst.setString(3,gui.showCurrentLevelLabel.getText())
pst.setString(4,list.get(counter));
ResultSet rs = pst.executeQuery();
if(rs.next())
{
String temp = rs.getString("Question");
gui.question.setText(temp);
...
sql = "Update Questions set Used ='"+1+"' where Question = '"+gui.question.getText().replaceAll("'", "/'")+"'";
pst = gui.connectionQuestions.prepareStatement(sql);
pst.execute();
在上面的代码中,我执行查询以返回问题字符串并将其添加到标签gui.question。但是由于撇号,我收到以下错误(由于最后一行我得到了错误):
[SQLITE_ERROR] SQL错误或缺少数据库("(":语法错误)
我尝试按照解决方案from here,但我的问题仍然存在。我怎么能用撇号来解决这个问题呢?
编辑:我试图使用双撇号来逃避角色。这种方法有效,但它将我的字符串更改为双撇号,这是没用的。