当前位置:网站首页>自定义MVC增删改查
自定义MVC增删改查
2022-07-18 23:48:00 【小阿飞_】
本期文章:导入上期文章包装好了的自定义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";
}
}
边栏推荐
猜你喜欢
随机推荐
Math.Net最优化方法之LM方法
启牛开通的银河VIP账户安全吗?
1. 课程内容介绍
How can Xiaobai open a reliable and safe account with CITIC?
Cordova fragment onactivityresult has no callback
Online random coin tossing positive and negative statistical tool
MySQL help post
What is the difference between statements and expressions
(二)fastai 2019 part2 重点提炼
洛谷P2024 [NOI2001] 食物链 题解
有奖调研 | 让虚拟照入现实的完美AR开发平台长什么样?
适合新手小白的免费编曲软件FL Studio20中文版
Free composition software for novice Xiaobai FL studio20 Chinese version
LeetCode-394-字符串解码
day03_3_流程控制练习题
互联网大厂智能座舱斗法
有一万元做什么创业好呢?自媒体行不行?
Security researchers found malware targeting industrial operators
Intelligent cockpit fighting method of Internet manufacturers
互联网大厂智能座舱斗法