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