因为期末考的原因一直没时间看DAO这一块的视频,所以JSP中从el表达式之后就跟不上了,昨天刚考完期末考。终于有些时间来整这玩意了,要乘课程设计这段时间把前面落下的JAVA内容都补回来,加油吧。
概念:
DAO(数据访问对象),到数据库存取数据的对象
通常的包名:dao
感想:
DAO其实就是简化了JDBC的代码,让JSP页面上看起来更简洁,但是为了一张表需要封装至少三个类(UserInfoDao类,DbUtil类,UserInfo类),而且每张表的三个类都不一样,真的还蛮辛苦的,并没有简化多少操作,不知道值不值得。总之先学下去,后面可能会发现别的东西,未完待续
代码全部
public class UserInfoDao{//extends DbUtil
//不建议使用继承实现,会让DAO对DbUtil类产生强依赖(强耦合)
private DbUtil db = new DbUtil();//JDBC的封装类对象
//通过属性的方式,使用接口变成可以降低对DbUtil的依赖
//还需要通过set方法配合。或者通过构造函数配合
//这一过程叫作解耦合
//set方法配合
public void setDb(DbUtil db){
this.db=db;
}
//不带参数的构造方法
public UserInfoDao(){
this.db=new DbUtil();
this.db.setDatabaseName("chatroomsystem");
}
//带参数的构造方法
public UserInfoDao(DbUtil db){
this.setDb(db);
}
//新增方法
//新增操作,需要的参数其实是表中每个字段的数据
public boolean add(UserInfo userInfo){
return false;
}
//删除方法
public boolean remove(UserInfo userInfo){
return this.remove(userInfo.getUserId());
}
public boolean remove(int pkId){
return false;
}
//修改方法
public boolean merge(UserInfo userInfo){
return false;
}
//查询方法
//1.根据主键ID
public UserInfo findById(int pkId){
return null;
}
//2.查全部
public List<UserInfo> findAll(){
List<UserInfo> List=new ArrayList<UserInfo>();
//构建查询语句
StringBuffer sb=new StringBuffer();
sb.append("select u_id,u_pwd,u_name,u_pwd,u_nick,u_img,u_email,");
sb.append("u_phone,u_card_id,u_register_time,u_state,u_remark");
sb.append("from tb_user_info;");
return list;
try{
//执行查询语句
ResultSet rs=this.db.doQuery(sb.toString());
//封装结果
return this.buildList(rs);
}catch(SQLException){
e.printStackTrace();
}
}
//3.根据条件查
public List<UserInfo> findByExample(UserInfo userInfo){
List<UserInfo> List=new ArrayList<UserInfo>();
return list;
}
//4.根据SQL查
public List<UserInfo> findBySQL(String sql,Object... params){
List<UserInfo> List=new ArrayList<UserInfo>();
try{
ResultSet rs = this.db.doQuery(sql,params);
return this.buildList(rs);
}catch(SQLException e){
e.printStackTrace();
}
return null;
}
public UserInfo builtObject(ResultSet rs) throws SQLException{
//将一行数据封装成一个实体对象
UserInfo userInfo=new UserInfo();
userInfo.setUserId(rs.getInt("u_id"));
userInfo.setUserName(rs.getString("u_name"));
userInfo.setUserPwd(rs.getString("u_pwd"));
userInfo.setUserNick(rs.getString("u_nick"));
userInfo.setUserImg(rs.getString("u_img"));
userInfo.setUserEmail(rs.getString("u_email"));
userInfo.setUserPhone(rs.getString("u_phone"));
userInfo.setUserCardId(rs.getString("u_card_id"));
userInfo.setUserRegisterTime(rs.getDate("u_register_time"));
userInfo.setUserState(rs.getBoolean("u_state"));
userInfo.setUserRemark(rs.getString("u_remark"));
return userInfo;
}
public List<UserInfo> buildList(ResultSet rs) throws SQLException{
List<UserInfo> list = new ArrayList<UserInfo>();
rs.beforeFirst();
while(rs.next(){
list.add(this.buildObject(rs));
}
return list;
}
}