JAVA中mysql多个条件怎么模糊查询_Java中怎么实现带参数的多条件的模糊查询?...

我需要带三个参数,在JSP的表单中传入Bean中执行,在Bean中封装了一个函数,里面这样可不可以啊:publicstaticArrayListfindBook(Stringisbn,Stringbookname,Stringauthor){...

我需要带三个参数,在JSP的表单中传入Bean中执行,在Bean中封装了一个函数,里面这样可不可以啊:

public static ArrayList findBook(String isbn,String bookname,String author )

{

// System.out.println("查询图书方法");

ArrayList list = new ArrayList();

String sql ="select * from tbl_book where isbn like '%"+isbn+"%' or bookname = '%"+bookname+

"%' or author = '%"+author+"%'";

//System.out.println(sql);

JDBCBean jdbc = new JDBCBean();

ResultSet rs = jdbc.executeQuery(sql);

try {

while(rs.next()){

BookDAO bk = new BookDAO();

bk.setId(rs.getInt("id"));

bk.setIsbn(rs.getString("isbn"));

bk.setBookname(rs.getString("bookname"));

bk.setAuthor(rs.getString("author"));

bk.setPress(rs.getString("press"));

bk.setDate(rs.getString("pubdate"));

bk.setPrice(rs.getString("price"));

list.add(bk);

}

rs.close();

} catch (Exception e) {

}

jdbc.close();

return list;

}

可是,我在表单中输入无论输不输人网页的前台都全部显示的。然后我又在控制台打印出sql 语句,把语句粘贴到MySQL控制台执行,还是全部显示,请大神指教,这个SQL语句应该怎么写啊?

JSP页面是这样的:

Java中SQL语句是

String sql ="select * from tbl_book where isbn like '%"+isbn+"%' or bookname like '%"+bookname+

"%' or author like '%"+author+"%'";但还是全部显示?

——————————————————————————————————————————

我明白了,如果传过来的参数isbn="",bookname="张三",author="",转化成SQL语句就成为:

select * from tbl_bookname where isbn like '%' or bookname like '%张三%' or author like '%';

因为是OR的关系,肯定每次查询都是全部记录。所以,我觉得应该不是数据库的问题,应该是我的程序有逻辑设计问题,我再考虑,感谢您热心回答^_^。

展开

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

生活教会我们

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值