我想将此Access sql查询转换为Java JDBC

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

我使用这样的prepareStatement

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('%' & ? & '%')";

关于java - 我想在JDBC中插入SQL的特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29391612/

10-09 02:13