三层架构
1.什么是三层?
是指 表示层、业务逻辑层、数据访问层
各层之间相互依赖:表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层
2.分层的实现
首先创建于用户信息对应的用户类
- //创建user实体类
- public class User{
- private int id;
- private String username;
- private String password;
- public int getId() {
- return id;
- }
- public void setId(int 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;
- }
- }
创建好user类后,面将把与数据库访问相关的业务提取出来,创建一个用户访问数据库的接口UserDao,在接口中声明查找用户的方法.
- public interface UserDao{
- //根据用户进行查找,返回用户列表
- public boolean findUser(User user);
- }
创建好UserDao接口后,需要编写具体的UserDaoJdbcImpl类来实现UserDao接口
- public class UserDaoJdbcImpl implements UserDao{
- public boolean findUser(User user) {
- Connection conn=null;
- PreparedStatement pstm=null;
- ResultSet rs=null;
- boolean valid=false;
- try {
- /**调用创建数据库连接的方法获得连接**/
- conn=BaseDao.getConn();
- String sql="select * from user where uname=?";
- pstm=conn.prepareStatement(sql);
- pstm.setString(1, user.getUsernname());
- rs=pstm.executeQuery();
- if(rs.next()&&rs.getString("upwd").equals(user.getPassword())){
- valid=true;
- return valid;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }finally{
- //此处省略关闭连接的代码
- }
- return valid;
- }
- }
编写业务逻辑层控制接口UserBiz
- public interface UserBiz{
- public boolean login(User user);
- }
编写实现UserBiz接口的具体实现类UserBizImpl
- public class UserBizImpl implements UserBiz{
- public List login(User user){
- UserDao ud=new UserDaoJdbcImpl();
- boolean flag=ud.findUser(user);
- return flag;
- }
- }
最后在JSP中调用业务逻辑来实现
- <%
- String uname=request.getParameter("user");
- String pwd=request.getParameter("pwd");
- User user=new User();
- user.setUsername(uname);
- user.setPassword(pwd);
- UserBiz ub=new UserBizImpl();
- boolean flag=ub.login(user);
- if(flag){
- response.sendRedirect("welcome.jsp");
- }else{
- response.sendRedirect("login.jsp");
- }
- %>
由此我们实现了将程序代码按照其各自所发挥的功能进行划分,页面展示、业务处理、数据库访问功能分工明确,在业务实现时只需关注本模块的实现即可!
三层开发遵循的原则
1. 上层依赖其下层,依赖关系不跨层
2. 下一层不能调用上一层
3. 下一层不依赖上一层
4. 在上一层中不能出现下一层的概念
转载于:https://blog.51cto.com/taokang/882125