代码语言:javascript复制
//1.PreparedStatement pstmt
//2.PreparedStatement pstmt = con.prepareStatement(sql)
//插入sql语句的方法,使用的是connection(con)中的prepareStatment方法
//3.ResultSet rs = pstmt.executeQuery()
//获取使用sql语句后查询到的结果集,用rs接收 ,使用的是PreparStatement(pstmt)中的executQuery方法
//4.pstmt.setString(1, myUser.getUserName());
//pstmt.setString(parameterIndex, x);
//设置参数,1指的是第一列,x指的是要插入的参数
//5.sql 后的ResultSet.TYPE_*
@Override
public Set<MyUser> getAllUser() {
Set<MyUser> set = null;
try (PreparedStatement pstmt = con.prepareStatement("SELECT userId,userName,password from myuser",
ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
set = new HashSet<>();
/*ResultSet.CONCUR_READ_ONLY为只读类型,
ResultSet.TYPE_FORWARD_ONLY表示上述类型的属性,此处为向前只读
此种方法效率较高,比如,一共三百个字节,每次读100个,读完前100之后,
删除掉再继续读中间100个*/
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
set.add(new MyUser().userName(rs.getString("userName")).userid(rs.getLong("userId"))
.password(rs.getString("password")));
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
return set;
}