dao包下Userdao.java代码
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import DBUtils.DBUtils;
import DBUtils.PageBean;
import entity.User;
public class Userdao {
//JDBC, JDBCTemplate(spring)
private Connection conn;
private PreparedStatement ps;
private ResultSet rs;
//处理SQL1:统计SQL
public String countSQL(String sql) {
//"select * from userRegist"
//"select * from userRegist where username like '%"+ key +"%'"
return "select count(*) from ("+ sql +") as a";
}
//处理SQL2: 分页
public String addLimit(String sql, PageBean pageBean) {
//"select * from userRegist"
//"select * from userRegist where username like '%"+ key +"%'"
return sql + " limit "+ pageBean.getStart() +","+ pageBean.getPageSize();
}
/**
* 查询用户表中所有记录
*
*/
public List<User> getAllUser(PageBean pageBean){
String sql = "select * from userRegist";
List<User> users = new ArrayList<>();
try {
conn = DBUtils.getConnection();
//执行统计总记录数的sql
String sql1 = countSQL(sql); //"select count(*) from ("+ sql +") as a"
ps = conn.prepareStatement(sql1);
rs = ps.executeQuery();
if(rs.next()) {
pageBean.setTotalSize((int)rs.getLong(1)); //获得总记录数
}
//执行分页的sql
String sql2 = addLimit(sql, pageBean);
ps = conn.prepareStatement(sql2);
rs = ps.executeQuery();
while(rs.next()) {
//1.实例化一个对象
User user = new User();
//2.为对象赋值
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setCity(rs.getString("city"));
user.setEmail(rs.getString("email"));
user.setGender(rs.getBoolean("gender"));
//获得表中兴趣字段
String str = rs.getString("hobby");
//按"|"分割字符串
String[] sp = str.split("\\|");
user.setHobby(sp);
user.setNickname(rs.getString("nickname"));
user.setResume(rs.getString("resume"));
//3.将对象添加到集合
users.add(user);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtils.close(conn, ps, rs);
}
return users;
}
/**
* 搜索功能:模糊查询
* @return
*/
public List<User> searchUserByKey(String key, PageBean pageBean){
String sql = "select * from userRegist where username like '%"+ key +"%'";
List<User> users = new ArrayList<>();
try {
conn = DBUtils.getConnection();
//执行统计总记录数的sql
String sql1 = countSQL(sql);
ps = conn.prepareStatement(sql1);
rs = ps.executeQuery();
if(rs.next()) {
pageBean.setTotalSize((int)rs.getLong(1)); //获得总记录数
}
//执行分页的sql
String sql2 = addLimit(sql, pageBean);
ps = conn.prepareStatement(sql2);
rs = ps.executeQuery();
while(rs.next()) {
//1.实例化一个对象
User user = new User();
//2.为对象赋值
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setCity(rs.getString("city"));
user.setEmail(rs.getString("email"));
user.setGender(rs.getBoolean("gender"));
//获得表中兴趣字段
String str = rs.getString("hobby");
//按"|"分割字符串
String[] sp = str.split("\\|");
user.setHobby(sp);
user.setNickname(rs.getString("nickname"));
user.setResume(rs.getString("resume"));
//3.将对象添加到集合
users.add(user);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
DBUtils.close(conn, ps, rs);
}
return users;
}
/**
* 根据ID查询用户表中记录
*
*/
public User getUserById(Integer id){
String sql = "select * from userRegist where id="&