• java:三层架构


    三层架构:软件设计架构

    1. 界面层(表示层):用户看的得界面。用户可以通过界面上的组件和服务器进行交互
    2. 业务逻辑层:处理业务逻辑的。
    3. 数据访问层:操作数据存储文件。
      在这里插入图片描述
      在这里插入图片描述

    示例:最简单的增删改查

    1. 需求:用户信息的增删改查操作

    2. 设计:

      1. 技术选型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat
      2. 数据库设计:
        create database day17; – 创建数据库
        use day17; – 使用数据库
        create table user( – 创建表
        id int primary key auto_increment,
        name varchar(20) not null,
        gender varchar(5),
        age int,
        address varchar(32),
        qq varchar(20),
        email varchar(50)
        );
    3. 开发:

      1. 环境搭建

        1. 创建数据库环境
        2. 创建项目,导入需要的jar包
      2. 编码

    4. 测试

    5. 部署运维
      在这里插入图片描述
      在这里插入图片描述
      UserDaoImpl.java

    package cn.itcast.dao.impl;
    
    import cn.itcast.dao.UserDao;
    import cn.itcast.domain.User;
    import cn.itcast.util.JDBCUtils;
    import org.springframework.jdbc.core.BeanPropertyRowMapper;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import java.util.List;
    
    public class UserDaoImpl implements UserDao {
    
        private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    
        @Override
        public List<User> findAll() {
            //使用JDBC操作数据库...
            //1.定义sql
            String sql = "select * from user";
            List<User> users = template.query(sql, new BeanPropertyRowMapper<User>(User.class));
    
            return users;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    UserDao.java

    package cn.itcast.dao;
    
    import cn.itcast.domain.User;
    
    import java.util.List;
    
    /**
     * 用户操作的DAO
     */
    public interface UserDao {
    
    
        public List<User> findAll();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    User.java

    package cn.itcast.domain;
    
    public class User {
        private int id;
        private String name;
        private String gender;
        private int age;
        private String address;
        private String qq;
        private String email;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getGender() {
            return gender;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public String getQq() {
            return qq;
        }
    
        public void setQq(String qq) {
            this.qq = qq;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", gender='" + gender + '\'' +
                    ", age=" + age +
                    ", address='" + address + '\'' +
                    ", qq='" + qq + '\'' +
                    ", email='" + email + '\'' +
                    '}';
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81

    UserServiceImpl.java

    package cn.itcast.service.impl;
    
    import cn.itcast.dao.UserDao;
    import cn.itcast.dao.impl.UserDaoImpl;
    import cn.itcast.domain.User;
    import cn.itcast.service.UserService;
    
    import java.util.List;
    
    public class UserServiceImpl implements UserService {
        private UserDao dao = new UserDaoImpl();
    
        @Override
        public List<User> findAll() {
            //调用Dao完成查询
            return dao.findAll();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    UserService.java

    package cn.itcast.service;
    
    import cn.itcast.domain.User;
    
    import java.util.List;
    
    /**
     * 用户管理的业务接口
     */
    public interface UserService {
    
        /**
         * 查询所有用户信息
         * @return
         */
        public List<User> findAll();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    JDBCUtils.java

    package cn.itcast.util;
    
    import com.alibaba.druid.pool.DruidDataSourceFactory;
    
    import javax.sql.DataSource;
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Properties;
    
    /**
     * JDBC工具类 使用Durid连接池
     */
    public class JDBCUtils {
    
        private static DataSource ds ;
    
        static {
    
            try {
                //1.加载配置文件
                Properties pro = new Properties();
                //使用ClassLoader加载配置文件,获取字节输入流
                InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
                pro.load(is);
    
                //2.初始化连接池对象
                ds = DruidDataSourceFactory.createDataSource(pro);
    
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 获取连接池对象
         */
        public static DataSource getDataSource(){
            return ds;
        }
    
    
        /**
         * 获取连接Connection对象
         */
        public static Connection getConnection() throws SQLException {
            return  ds.getConnection();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    UserListServlet.java

    package cn.itcast.web.servlet;
    
    import cn.itcast.domain.User;
    import cn.itcast.service.UserService;
    import cn.itcast.service.impl.UserServiceImpl;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.List;
    
    @WebServlet("/userListServlet")
    public class UserListServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1.调用UserService完成查询
            UserService service = new UserServiceImpl();
            List<User> users = service.findAll();
            //2.将list存入request域
            request.setAttribute("users",users);
            //3.转发到list.jsp
            request.getRequestDispatcher("/list.jsp").forward(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request, response);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    druid.properties

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql:///day17
    username=root
    password=root
    initialSize=5
    maxActive=10
    maxWait=3000
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    实验4 SQL的复杂多表查询以及视图
    【吴恩达机器学习笔记】十四、推荐系统
    springboot + Vue前后端项目(第二十一记)
    c语言基础知识帮助理解(函数递归详解)
    进程间的通信方式
    112.HBase Endpoint类型的Coprocessor开发与部署
    7. 吴恩达深度学习--搭建循环神经网络及其应用
    电脑数据丢失如何恢复呢?
    【HTML】
    【改论文有感】给英语论文写作小白的有用提示!(二)文法章法篇
  • 原文地址:https://blog.csdn.net/weixin_43972437/article/details/132813466