"book_name like ?", new String[]{"%"+name+"%"},
时间: 2023-07-19 10:51:19 浏览: 40
这段代码是在使用SQLite数据库的查询操作中,使用了占位符的方式来进行模糊查询。其中,"book_name like ?"是SQL语句中的查询条件,"?"是一个占位符,表示需要动态传入查询的值。而new String[]{"%"+name+"%"}则是实际传入的值,用于替换占位符。这里使用了字符串拼接的方式,将需要查询的字符串name加上通配符“%”,以实现模糊查询的功能。例如,如果name为"Java",则查询条件就会变成"book_name like '%Java%'",表示查询所有包含"Java"字符的书名。
相关问题
@Override public List<Book> blurryName(Book book) throws SQLException { String sql ="select * from book where book_name like ?"; List<Book> list = qr.query(DBUtil.getConnection(),sql,new BeanListHandler<Book>(Book.class),"%"+book.getBook_name()+"%"); return list; }
这段代码是一个Java方法,用于从数据库中模糊查询书籍的信息。blurryName方法接收一个Book对象作为参数,然后使用JDBC操作数据库,执行SQL语句,将模糊查询到的Book对象封装成一个List集合返回。具体来说,这段代码使用了一个名为"qr"的QueryRunner对象,它是Apache Commons DbUtils库提供的一个简化JDBC操作的工具类。blurryName方法使用了QueryRunner对象的query方法,该方法接收一个Connection对象、一个SQL语句、查询结果集处理器和一些参数,然后执行SQL语句并返回查询结果。在这段代码中,SQL语句是"select * from book where book_name like ?",其中问号表示占位符,代表后面的参数。模糊查询使用了"like"关键字,可以匹配包含指定字符串的所有记录。
最后,blurryName方法使用Book对象的get方法获取book_name的属性值,并将它作为参数传递给query方法。由于查询结果可能有多条记录,所以使用了BeanListHandler类将结果集封装成一个List集合,并将它返回。里面用到了Java的泛型特性,将List中的元素类型指定为Book类,表示查询结果是一组Book对象。
<select id="getQueryBook" parameterType="String" resultMap="bookResult"> select * from book where book_name like CONCAT('%',#{bookName},'%') </select>mapper中的参数会乱码,如何解决
在MyBatis的mapper中,如果参数值出现乱码,可以尝试以下解决方法:
1. 确认前后端字符集是否一致,如果不一致则需要对字符集进行统一。
2. 在前端将查询字符串进行编码,使用encodeURIComponent()函数进行编码。后端在接收到查询字符串后,使用decodeURIComponent()函数进行解码。
3. 在mapper中使用Java内置的URLEncoder类对参数进行编码,例如:
```
select * from book where book_name like CONCAT('%',#{bookName, jdbcType=VARCHAR},'%')
```
在Java代码中,将参数进行编码:
```
String encodedParam = URLEncoder.encode(bookName, "UTF-8");
```
然后将编码后的参数传递给mapper。
4. 如果以上方法无法解决问题,可以尝试在数据源连接字符串中指定字符集,例如:
```
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf8
```
这样可以确保MyBatis和数据库之间使用一致的字符集进行数据传输。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)