PreparedStatement 使用like 模糊查询

Posted Freeguy88

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PreparedStatement 使用like 模糊查询相关的知识,希望对你有一定的参考价值。

PreparedStatement 在数据库查询中是经常会用到的一个对象,经常的用法是类似这样的sql语句:

String sql = “select * from table where name =? ” 接着用 pstmt = con.prepareStatement(sql) 来实现sql准备,然后就要将sql中的?部分调用pstmt的setXXX(num,value)方法进行赋值就可以了。 其中num为sql中的?的序号(从1开始),因此 当sql中有多个?时,其相应的setXXX()序号也将为1,2,3,···。

在使用LIKE关键字进行模糊查询时,可以使用通配符"%",来代替0个或者多个字符,使用下划线_来代表一个字符。

PreparedStatement 遇上 like模糊查询时, 就会稍有改动,具体可有如下两种情况: 1.在sql中,写法如下: String sql="select * from users where username like '%小%' "; 可见在like后面的查询部分要加英文的单引号; 2.在setXXX()方法中,写法如下: String sql="select * from users where username like ?"; pstmt.setString(1,"%"+str+"%"); 这里的sql用?代替了之前的查询部分,而在setString()方法中实现了模糊查询。


以上是关于PreparedStatement 使用like 模糊查询的主要内容,如果未能解决你的问题,请参考以下文章

不能在 JDBC PreparedStatement 中使用 LIKE 查询?

java中PreparedStatement执行带参数的sql语句如何实现模糊查询?

Golang 中的跨数据库准备好的语句绑定(like 和 where in)

java中如何获取结果集ResutSet的总条数?

使用 PreparedStatement 进行批处理

PreparedStatement 和 Statment区别