实现类文件名字为 Emp
具体类对应的DAO接口为 IEmpDAO
public interface IEmpDAO extends IDAO<T ,K >{
}
T 和 K要修改为与Emp类相关的参数 ,修改如下:
public interface IEmpDAO extends IDAO<Emp ,Integer >{
// IDAO <T,K>
// T是 对象 这里应该具体为 Emp对象
// K是 id,id是int类型
}
这里还可以新增 DAO的操作功能 ,比如:getCount(统计数据库中有多少的数据)
Emp对象的DAO实现命名为 IEmpDAOImpl
增删改查的具体实现(要根据上面的类写对应的方法)
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @aythor: willer
* @time: 2022-10-29 15:48
*/
public class EmpDAOImpl implements IEmpDAO{
Connection conn;
PreparedStatement pst;
// 有参构造器
// 到时候 要传跟数据库连接相关的进来
// emp
// empno
// ename
// job
// hiredate
// sal
// comm
public EmpDAOImpl(Connection conn) throws Exception{
this.conn=conn;
}
@Override
public int doCreate(Emp vo) throws Exception{
// 本质是更新
// 返回1 那就是更新成功
int rs=0;
String sql = "insert emp(empno,ename,job,hiredate,sal,comm) values (?,?,?,?,?)";
pst=conn.prepareStatement(sql);
pst.setInt(1,vo.getEmpno());
pst.setString(2,vo.getEname());
pst.setString(3,vo.getJob());
pst.setDate(4,new java.sql.Date(vo.getHiredate().getTime()));
pst.setDouble(5,vo.getSal());
pst.setDouble(6,vo.getSal());
rs=pst.executeUpdate();
return rs;
}
@Override
public int doRemove(Integer id) throws Exception{
int rs=0;
String sql="delete from emp where empno = ? ";
pst= conn.prepareStatement(sql);
pst.setInt(1,id);
rs=pst.executeUpdate();
return rs;
}
@Override
public int doUpdate(Emp vo) throws Exception{
int rs=0;
String sql = "update emp set ename=?,job=?,hiredate=?,sal=?,comm=? where empno=?";
pst= conn.prepareStatement(sql);
pst.setString(1,vo.getEname());
pst.setString(2,vo.getJob());
pst.setDate(3,new java.sql.Date(vo.getHiredate().getTime()));
pst.setDouble(4,vo.getSal());
pst.setDouble(5,vo.getSal());
pst.setInt(6,vo.getEmpno());
rs=pst.executeUpdate();
return rs;
}
@Override
public List<Emp> findAll() throws Exception{
List<Emp> list = null;
String sql ="select * from empno";
pst=conn.prepareStatement(sql);
ResultSet rs= pst.executeQuery(sql);
rs=pst.executeQuery();
while(rs.next()) {
// 不知道怎么添加了???
// ans.add(rs);
if(list==null) {
list = new ArrayList<Emp>();
}
Emp vo = new Emp();
vo.setEmpno(rs.getInt(1));
vo.setEname(rs.getString(2));
vo.setJob(rs.getString(3));
vo.setHiredate(rs.getDate(4));
vo.setSal(rs.getDouble(5));
vo.setComm(rs.getDouble(6));
list.add(vo);
}
return list;
}
@Override
public Emp findById(Integer id) throws Exception{
Emp vo = null;
String sql="select * from emp where empno = ?";
pst=conn.prepareStatement(sql);
pst.setInt(1,id);
ResultSet rs = pst.executeQuery();
// 不知道啊???
// List<Emp> ans = new ArrayList<Emp>(pst.executeQuery(sql));
while(rs.next()) {
vo = new Emp();
vo.setEmpno(rs.getInt(1));
vo.setEname(rs.getString(2));
vo.setJob(rs.getString(3));
vo.setHiredate(rs.getDate(4));
vo.setSal(rs.getDouble(5));
vo.setComm(rs.getDouble(6));
}
return vo;
}
}