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; }