SQL语句模糊查询 JavaWeb 项目 dao层 【常用来做搜索框】

目的:搜索框,通过输入一些关键词,查询含有关键词的书名

           通过一条查询语句能够实现用户所有的条件进行查询

刚开始的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语句后面一定要留空格,否则和后面进行字符串拼接后,到数据库查询会出现错误

 

 

如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值