本期文章:导入上期文章包装好了的自定义MVC的jar包来进行增删改查的操作,其目的也是测试自定义的MVC的jar包是否能成功使用,并且验证使用自定义的MVC的jar包可以帮助我们减少数据增删改查操作的代码量
目录
1、导入自定义的MVC的jar包
- 先创建好项目,然后导入需要用到的jar包
2、编写增删改查的代码
编写前的操作
- 建立一个源码文件夹放入相关文件👇
- 搭建好结合了MVC的三层架构的框架
具体代码实现
Student
public class Student {
private Integer sid;
private String sname;
private Integer score;
private String clazz;
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public String getClazz() {
return clazz;
}
public void setClazz(String clazz) {
this.clazz = clazz;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", score=" + score + ", clazz=" + clazz + "]";
}
}
IStudentDao
public interface IStudentDao {
List<Student> getStudents(Student student, PageBean pageBean);
void addStudent(Student student);
}
StudentDao
public class StudentDao implements IStudentDao {
@Override
public List<Student> getStudents(Student stu, PageBean pageBean) {
String sql = "select sid,sname,score,class,VERSION from t_student";
List<Object> param = new ArrayList<>();
if(stu != null
&& stu.getSname() != null
&& !"".equals(stu.getSname())) {
sql += " where sname like ?";
param.add(stu.getSname()+"%");
}
return BaseDao.query(sql, param, pageBean, new ICovent<Student>() {
@Override
public List<Student> convent(ResultSet rs) throws SQLException {
List<Student> list = new ArrayList<>();
while(rs.next()) {
Student student = new Student();
student.setSid(rs.getInt("sid"));
student.setSname(rs.getString("sname"));
student.setScore(rs.getInt("score"));
student.setClazz(rs.getString("class"));
list.add(student);
}
return list;
}
});
}
@Override
public void addStudent(Student student) {
String sql = "insert into t_student(sname, score, class)values(?,?,?)";
Connection con = null;
PreparedStatement ps = null;
try {
con = DBUtil.getConection();
ps = con.prepareStatement(sql);
ps.setObject(1, student.getSname());
ps.setObject(2, student.getScore());
ps.setObject(3, student.getClazz());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.closeDB(null, ps, con);
}
}
@Test
public void testGetStudent() {
Student student = new Student();
List<Student> list = getStudents(student,new PageBean());
list.forEach(t->System.out.println(t));
}
}
IStudentService(相当于biz层)
public interface IStudentService {
List<Student> getStudents(Student stu, PageBean pageBean);
void addStudent(Student student);
}
StudentService
public class StudentService implements IStudentService {
private IStudentDao dao = new StudentDao();
@Override
public List<Student> getStudents(Student stu, PageBean pageBean) {
return dao.getStudents(stu, pageBean);
}
@Override
public void addStudent(Student student) {
dao.addStudent(student);
}
}
StudentAction
public class StudentAction extends AbstractAction implements ModelDrive {
private Student student = new Student();
private StudentService service = new StudentService();
@Override
public Object getModel() {
return student;
}
private IStudentService service = new StudentService();
public String getStudents(HttpServletRequest req, HttpServletResponse resp) {
PageBean pageBean = new PageBean();
pageBean.setRequest(req);
List<Student> students = service.getStudents(student, pageBean);
req.setAttribute("students", students);
return "students";
}
public String addStudent(HttpServletRequest req, HttpServletResponse resp) {
service.addStudent(student);
return "success";
}
}