现在几乎所有的B/S结构的软件都要使用MVC模式层次划分,它不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,更加有利于后期的维护和升级。多的不说,直接进行介绍。
我们可以结合MVC将JavaWeb项目分为五层结构,分别是模型层、数据访问层、业务逻辑层、控制逻辑层和界面层。
上边这张图片是一个例子,在项目文件夹下新建四个文件夹,名字分别为bean(或者entity)、dao、service和controller。
一.模型层(bean、entity、model)
bean不做解释,就是我们的模型层。以下是博主写的用户实体,供参考。
package com.xwj.FormSystem.bean;
/**
* 系统用户Entity
* @author Xuwenjie
* @version V1.0
*/
public class User {
private String id; //唯一标识
private String username; // 用户名
private String password; // 密码
private String pic; // 头像
private String role; // 角色
public User(){
}
public User(String id, String username, String password, String pic, String role) {
this.id = id;
this.username = username;
this.password = password;
this.pic = pic;
this.role = role;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
二.数据访问层(DAO层)
DAO,本意为data access object,即数据访问对象。顾名思义,在这一层下,应包含对数据库的一系列操作(注意,是对数据库数据的操作,而不是代码中使用的临时数据变量)。此层为Service层和Controller层提供数据服务。
我们以UserDao为例,也就是用户数据访问对象。
应该尽量面向接口编程,所以我们先新建一个接口,名为UserDao(不必在意那个FormDao)
这个接口中,写了以下这些方法,待会都需要用具体的实现类来实现。
package com.xwj.FormSystem.dao;
import com.xwj.FormSystem.bean.User;
import java.sql.Connection;
import java.util.List;
//系统用户DAO接口
public interface UserDao {
int add(Connection con, User user);
int delete(Connection con,String id);
int update(Connection con,User user);
List<User> selectAll(Connection con);
User login(Connection con,String username,String password);
User checkRegister(Connection con,String username);
}
如读者所见,只是一些简单的增删改查(DAO层要做的大抵就是这些工作)
下面,创建实现类,名叫UserDaoImpl,并实现方法。
UserDaoImpl的代码如下(该代码仅是博主个人项目需要,读者应视具体情况具体分析)
package com.xwj.FormSystem.dao.impl;
import com.xwj.FormSystem.bean.User;
import com.xwj.FormSystem.dao.UserDao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
* 系统用户DAO接口实现类
* @author Xuwenjie
* @version V1.0
*/
public class