我想将此Access sql查询转换为Java JDBCSelect *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/