根据用户给定的条件来决定执行什么样的查询
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;/*** 动态查询*/public class DynamicConditionQueryTest {public List<Users> queryUsers(Users users){Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;List<Users> list = new ArrayList<>();try {connection = JDBCUtils.getConnection();//拼接查询sql语句String sql = this.generateSql(users);System.out.println(sql);preparedStatement = connection.prepareStatement(sql);resultSet=preparedStatement.executeQuery();while(resultSet.next()){users = new Users();users.setUsername(resultSet.getString("username"));users.setUserid(resultSet.getInt("userid"));users.setUserage(resultSet.getInt("userage"));list.add(users);}}catch (Exception e){e.printStackTrace();}finally {JDBCUtils.clossResource(resultSet,preparedStatement,connection);}return list;}/*** 生成动态条件查询sql语句*/private String generateSql(Users users){StringBuffer stringBuffer = new StringBuffer("select * from users where 1=1 ");if(users.getUserid()>0){stringBuffer.append(" and userid=").append(users.getUserid());}if(users.getUsername()!=null&&users.getUsername().length()>0){stringBuffer.append(" and username='").append(users.getUsername()); //字符串类型注意处理}if(users.getUserage()>0){stringBuffer.append(" and userage=").append(users.getUserage());}return stringBuffer.toString();}public static void main(String[] args) {DynamicConditionQueryTest dynamicConditionQueryTest = new DynamicConditionQueryTest();Users users = new Users();users.setUsername("laogeng1'");List<Users> list = dynamicConditionQueryTest.queryUsers(users);for(Users users2: list){System.out.println(users2.getUserid()+" "+users2.getUsername()+" "+users2.getUserage());}}}

