目的:搜索框,通过输入一些关键词,查询含有关键词的书名
通过一条查询语句能够实现用户所有的条件进行查询
刚开始的SQL语句如下:
String sql = "SELECT * FROM books WHERE book_name LIKE '%"+book_name+"%'";
运行后,代码一直报错,最后修改后运行成功的代码附下面,相信很多人和我一样会遇到同样的错误
代码如下:
//模糊查询书名
public List<Books> getBooksSearchName(String book_name) {
//where 1=1后面一定要留空格,否则和后面进行字符串拼接后,到数据库查询会出现错误
String sql = "select * from books where 1=1 ";
//创建一个集合用来存储查询的参数
List<String> list = new ArrayList<String>();
if (book_name != "") {
//如果用户输入的book_name不为空,那需要进行字符串拼接
sql += "and book_name like ? ";
//将用户输入的参数添加到集合
list.add("%" + book_name + "%");
}
//最后将集合转化成数组
Object[] lists = list.toArray();
List<Books> books = null;
try {
books = qr.query(sql, new BeanListHandler<Books>(Books.class),lists);
//System.out.println(books);
} catch (SQLException e) {
e.printStackTrace();
}
return books;
}
注意事项:
1.SQL语句后面一定要留空格,否则和后面进行字符串拼接后,到数据库查询会出现错误
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步