我想在JDBC中插入一个特殊字符SQL

I want to insert a special character of SQL in JDBC

我想将这个 Access sql 查询翻译成 Java JDBC

Select * From books Where Lcase(title) LIKE Lcase('*jdbc*') AND Lcase(title) LIKE Lcase('*programming*')

我使用这样的 preparedStatement

String sql1="Select * From books Where Lcase(title) LIKE Lcase(%?%) AND Lcase(title) LIKE Lcase(%?%)";
PreparedStatement ps1=con.prepareStatement(sql1);
ps1.setString(1, "jdbc");
ps1.setString(2, "programming");
ResultSet rs1=ps1.executeQuery();

但是我得到一个语法错误

如果你想将%插入到Lcase使用的值中,你有两个选择:

  • 在代码中添加%,或者
  • 在查询中使用串联。

第一种方法如下所示:

String sql1="Select * From books Where Lcase(title) LIKE Lcase(?) AND Lcase(title) LIKE Lcase(?)";
PreparedStatement ps1=con.prepareStatement(sql1);
ps1.setString(1, "%jdbc%");
ps1.setString(2, "%programming%");

第二种方法如下所示:

String sql1="Select * From books Where Lcase(title) LIKE Lcase('%' & ? & '%') AND Lcase(title) LIKE Lcase('%' & ? & '%')";