自定义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;
	}
	
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVC模式的实现对数据库的增删改查 部分代码: package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import common.DBConnection; import bean.Contact; public class ContactDAO { public List getAllContact() throws Exception{ Connection conn=DBConnection.getConntion(); PreparedStatement ps=conn.prepareStatement("select * from Contact"); ResultSet rs=ps.executeQuery(); List list = new ArrayList(); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String phone = rs.getString("phone"); String address = rs.getString("address"); Contact c = new Contact(); c.setId(id); c.setName(name); c.setPhone(phone); c.setAddress(address); list.add(c); } rs.close(); ps.close(); conn.close(); return list; } public void addContact(String name,String phone,String address) throws Exception{ String sql = "insert into contact(id,name,phone,address) values(seq_contact.nextval,?,?,?)"; Connection con = DBConnection.getConntion(); PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, name); pstmt.setString(2, phone); pstmt.setString(3, address); pstmt.executeUpdate(); } public void delContact(int id) throws Exception{ String sql = "delete from contact where id=?"; Connection con = DBConnection.getConntion(); PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, id); pstmt.executeUpdate(); } public Contact getContactById(int id) throws Exception{ String sql = "select * from Contact where id=?"; Connection con = DBConnection.getConntion(); PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, id); ResultSet rs = pstmt.executeQuery(); Contact c = null; while(rs.next()){ // int id = rs.getInt("id"); String name=rs.getString("name"); String p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值