自定义mvc实现增删改查
一、前言
我在之前的博客中已经向大家介绍了自定义mvc的基本知识。还不是很了解的可以看一下之前的博客。
传送门在此: https://blog.csdn.net/qq_45547474/article/details/106531932.
那么这次我就给大家讲解一下用自定义mvc来解决增删改查。
首先了解一下servlet是如何解决增删改查的。
二、用servlet解决增删改查
1、servlet解决代码方式简单了解
那我们先看到一个类列表,我们可以了解到为了完成一个增删改查,使用servlet会显得代码很多,极其繁琐。
我们调出一段servlet查询需求的代码看一下:
//zouyan
public List<Book> getAll(Book b,PageBean pageBean) throws SQLException{
List<Book> ls=new ArrayList<Book>();
String sql="select * from t_mvc_book where true";
String bname = b.getBname();
if(StringUtils.isNotBlank(bname)) {
sql+=" and bname like '%"+bname+"%'";
}
Connection con=DBAccess.getConnection();
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while(rs.next()) {
ls.add(new Book(rs.getInt("bid"),rs.getString("bname"),rs.getFloat("price")));
}
DBAccess.close(con, ps, rs);
return ls;
}
可以看出代码的一个很明显的弊端 : if条件分支过多,代码过于臃肿。
包括还有界面和jar包,相对于自定义mvc解决增删改查来说servlet解决会简单很多。因为servlet存在很多的弊端。
2、弊端
1、if条件分支过多,代码过于臃肿
2、处理前端jsp传递到后端值得封装代码量过大
3、处理完业务逻辑应该跳转指定页面
但是自定义mvc却很好的可以解决 :
(自定mvc)
1、if条件分支过多,代码过于臃肿
分析:if代码块中就是调用了当前类的对应方法
处理:反射动态调用方法
2、处理前端jsp传递到后端值得封装代码量过大
分析:给指定的类属性赋值
处理:通过反射读写属性
3、处理完业务逻辑应该跳转指定页面
分析:不同的逻辑处理完要跳转的页面不同,代码的位置过于混乱,我们希望同一管理
处理:xml建模将结果页面统一配置
那么我们就通过代码来了解吧。
三、自定义mvc解决增删改查
1、步骤解读
使用到的工具:mysql+eclipse
利用mvc完成增删改
那我们就按照步骤来完成吧。
2、代码了解
首先来完成实体类的代码,你需要完成什么代码就写上什么属性就可以了。
我所操纵的是一个job表
那么实体类代码就是这样写的:
//zouyan
/**
* 招聘信息的实体类
* @author zouyan
*
* Orange_南橙
*/
public class Recruitment{
private String id;
private String job;
private String company;
private String address;
private String salary;
private String url;
private String limit;
private Date time;
private String desc;
private String jobHandle;
private String addressHandle;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getLimit() {
return limit;
}
public void setLimit(String limit) {
this.limit = limit;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getJobHandle() {
return jobHandle;
}
public void setJobHandle(String jobHandle) {
this.jobHandle = jobHandle;
}
public String getAddressHandle() {
return addressHandle;
}