Java数据库学习之模糊查询(like )
Java数据库学习之模糊查询(like ):
第一种方式:直接在SQL语句中进行拼接,此时需要注意的是parm在SQL语句中需要用单引号拼接起来,注意前后单引号之间不能空格
String sql = "select * from tb_user where uname like '%" + parm + "%'";
第二种方式: 使用占位符,在占位符赋值时进行拼接
String sql = "select * from tb_user where uname like ?"; ps.setString(1, "%"+parm+"%");
DEMO
/** * *Java数据库学习之模糊查询like *需要注意SQL语句中占位符需用字符串拼接赋值 *其中%匹配0~n个任何字母。 */ @Override public List<User> fuzzyquery(String parm) { // 1、准备SQL语句 // 第一种方式:直接在SQL语句中进行拼接,此时需要注意的是parm在SQL语句中需要用单引号拼接起来,注意前后单引号之间不能空格 // String sql = "select * from tb_user where uname like '%" + parm + "%'"; // 第二种方式: 使用占位符,在占位符赋值时进行拼接 String sql = "select * from tb_user where uname like ?"; // 2、创建数据库连接对象 conn = DBUtil.getconn(); // 由于结果集返回的是user类。所以使用list<User>来接受返回的数据 User user = null; List<User> list = new ArrayList<>(); try { // 3、预编译语句,如果有占位符则对占位符赋值。 PreparedStatement ps = conn.prepareStatement(sql); // 占位符赋值时进行拼接 ps.setString(1, "%"+parm+"%"); // 4、执行语句,并返回查询的结果集 ResultSet rs = ps.executeQuery(); while(rs.next()) { user = new User(rs.getString("pass"), rs.getInt("uage"), rs.getString("uname"), rs.getString("birthday"), rs.getBigDecimal("sal"), null); list.add(user); } } catch (SQLException e) { e.printStackTrace(); } return list; }