java实现至少输入一个条件的数据库查询

昨天在编写java连接数据库实现书目管理的作业时,学习到了一个很巧妙的方法
可以很简单的实现 **至少输入一个条件的** 查询

代码如下

if (!BookNameText.getText().equals("") || !BookPressText.getText().equals("")
                    || !BookAuthorText.getText().equals("") || !BookNumberText.getText().equals("")) {   //至少有一个输入的时候
                String SearchStr = "SELECT * FROM `book` WHERE 1 ";
                if (!BookNameText.getText().equals("")) {
                    SearchStr += "AND BookName='" + BookNameText.getText() + "'";
                }
                if (!BookPressText.getText().equals("")) {
                    SearchStr += "AND BookPress='" + BookPressText.getText() + "'";
                }
                if (!BookAuthorText.getText().equals("")) {
                        SearchStr += "AND BookAuthor='" + BookAuthorText.getText() + "'";
                }
                if (!BookNumberText.getText().equals("")) {
                        SearchStr += "AND BookNumber='" + BookNumberText.getText() + "'";
                }
                resultSet = statement.executeQuery(SearchStr);
                    ......
                    ......
}           

我认为其中最精妙的就是把WHERE语句的条件先加一个“1”,这样就不用判断谁是第一个加入的条件,就不用判断加不加 “AND”,可以直接在接下来的每一句前面都加上“AND”了。更不需要把四个条件的24个组合判断一个遍了~

ps:这里用的是MySQL。

你可能感兴趣的:(学习笔记)