• SpringBoot开发之SpringJDBC


    SpringBoot开发之SpringJDBC


    在经过前面Spring基础的学习后,今天我们要正式开始使用SpringBoot连接数据库的操作了😛😛😛。

    一、下载好MySQL8.0以及它的可视化工具,可视化工具建议大家使用MySQLWorkbench或者Navicat,我自己是用的MySQLWorkbench,个人感觉很好用

    二、打开MySQLWorkbench,创建数据库以及表

    1.创建数据库springboot

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    2.创建class表

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.写入数据

    在这里插入图片描述
    在这里插入图片描述

    三、Spring数据库编程概述

    1.Spring封装了JDBC所有的底层细节,从开始打开连接,准备和执行SQL语句,处理异常,处理事务,到最后关闭连接。大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业务逻辑中。
    2.Spring框架提供了JdbcTemplate类,该类是Spring框架数据抽象层的基础这是管理所有数据库通信和异常处理的中央框架类。
    3.Spring框架提供了DriverManagerDataSource类,该类是一个标准的标准JDBC数据源的简单实现类。
    4.Spring框架能整合一些数据库连接池,如DBPC连接池、c3p0连接池、alibabadruid连接池

    四、打开上篇的SpringMVC包即可,不需要重新新建文件夹

    1.引入依赖包

    在这里插入图片描述

    <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-jdbcartifactId>
          <version>5.3.22version>
        dependency>
        <dependency>
          <groupId>mysqlgroupId>
          <artifactId>mysql-connector-javaartifactId>
          <version>8.0.30version>
        dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.修改配置文件spring-servlet.xml,数据库端口号、数据库名、用户名和密码使用自己的

    在这里插入图片描述

       <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
    
            <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    
            <property name="url" value="jdbc:mysql://localhost:3307/springboot01?characterEncoding=utf8&serverTimezone=UTC"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        bean>
        <bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
            <property name="dataSource" ref="dataSource"/>
        bean>
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3.在pojo文件夹下创建Person实体类并定义变量,记住变量类型必须与数据库中字段类型一致

    在这里插入图片描述

    package com.zou.pojo;
    
    public class Person {
        private  int id;
        private  int age;
        private String name;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    
    • 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

    6.查询数据库数据

    (1)修改UserDao类

    在这里插入图片描述

        public List<Person> findAllPerson();
    
    • 1

    (2)修改UserDaoImpl类

    在这里插入图片描述

        @Autowired
        JdbcTemplate jdbcTemplate;
         public List<Person> findAllPerson() {
            RowMapper<Person> rowMapper=new BeanPropertyRowMapper<Person>(Person.class);
            return jdbcTemplate.query("select * from class1",rowMapper);
        }
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    (3)修改UserService类

    在这里插入图片描述

        public List<Person> findAllPerson();
    
    • 1

    (4)修改UserServiceImpl类

    在这里插入图片描述

        public List<Person> findAllPerson() {
            return userDao.findAllPerson();
        }
    
    • 1
    • 2
    • 3

    (5)在controller层创建PersonController类

    在这里插入图片描述
    在这里插入图片描述

    @RequestMapping("personlist")
        public String personlist(Model model){
            model.addAttribute("personlist",userService.findAllPerson());
            return "personlist";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (6)运行Tomcat,数据库中数据全部打印出来啦

    在这里插入图片描述
    在这里插入图片描述

    5.增加数据

    (1)修改UserDao类

    在这里插入图片描述

        public void addPerson(int age,String name);
    
    • 1

    (2)修改UserDaoImpl类

    在这里插入图片描述

        @Autowired
        JdbcTemplate jdbcTemplate;
         public void addPerson(int age, String name) {
            jdbcTemplate.update("insert into class1 values (null,?,?)",age,name);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (3)修改UserService类

    在这里插入图片描述

        public void addPerson(int age,String name);
    
    • 1

    (4)修改UserServiceImpl类

    在这里插入图片描述

        public void addPerson(int age, String name) {
            userDao.addPerson(age, name);
        }
    
    • 1
    • 2
    • 3

    (5)jsp文件夹下新建addPerson.jsp

    在这里插入图片描述

    <%--
      Created by IntelliJ IDEA.
      User: Admin
      Date: 2022/9/30
      Time: 14:36
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>增加person页面</h1>
    <form action="${pageContext.request.contextPath}/addpersoncommit" method="post">
        <div>id:<input name="id"></div>
        <div>用户名:<input name="name"></div>
        <div>年龄:<input name="age"></div>
        <div><input type="submit" value="提交"></div>
    </form>
    </body>
    </html>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    (6)修改PersonController类

    在这里插入图片描述

    
        @RequestMapping("addperson")
        public String addperson(){
    //        model.addAttribute("name",userService.findUserName());
            return "addPerson";
        }
        @RequestMapping("addpersoncommit")
        public String addpersoncommit(Model model, String name,int age){
            userService.addPerson(age,name);
            return "success";
            跳到列表
    //        return "forward:/personlist";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    (7)点击运行,增加用户,提交后跳转到用户列表页面,因为我们设置的id为自动增加,所以每提交一次id+1,刷新数据库查看数据成功增加

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    6.删除数据

    (1)修改UserDao类

    在这里插入图片描述

        public void deletePerson(int id);
    
    • 1

    (2)修改UserDaoImpl类

    在这里插入图片描述

       public void deletePerson(int id) {
            jdbcTemplate.update("delete from class where id=?",id);
        }
    
    • 1
    • 2
    • 3

    (3)修改UserService类

    在这里插入图片描述

        public void deletePerson(int id);
    
    • 1

    (4)修改UserServiceImpl类

    在这里插入图片描述

        public void deletePerson(int id) {
            userDao.deletePerson(id);
        }
    
    • 1
    • 2
    • 3

    (5)修改PersonController类

    在这里插入图片描述

       @RequestMapping("deleteperson")
        public String deleteperson(int id){
            userService.deletePerson(id);
    //        跳到列表
            return "forward:/personlist";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (6)修改personlist.jsp

    在这里插入图片描述

    <%--
      Created by IntelliJ IDEA.
      User: Admin
      Date: 2022/9/30
      Time: 15:18
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <%--<h1>--%>
    <%--<a href="${pageContext.request.contextPath}/addperson">增加用户</a>--%>
    <%--</h1>--%>
    <h1>person列表</h1>
    <%--jstl标签--%>
    <table border="1">
        <tr>
            <td>id</td>
            <td>年龄</td>
            <td>姓名</td>
            <td>删除操作</td>
    <%--        <td>更新操作</td>--%>
        </tr>
        <c:forEach var="person"  items="${personlist}">
            <tr>
                <td>${person.id}</td>
                <td>${person.age}</td>
                <td>${person.name}</td>
                <td>
                    <a href="${pageContext.request.contextPath}/deleteperson?id=${person.id}">删除用户</a>
                </td>
    <%--            <td>--%>
    <%--                <a href="${pageContext.request.contextPath}/updateperson?id=${person.id}&age=${person.age}&name=${person.name}">更新用户</a>--%>
    <%--            </td>--%>
            </tr>
        </c:forEach>
    </table>
    </body>
    </html>
    
    
    • 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

    (7)点击运行,可以进行删除操作啦,删除用户后,刷新数据库查看删除成功

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    7.修改数据

    (1)修改UserDao类

    在这里插入图片描述

     public void updatePerson(int id,int age,String name);
    
    • 1

    (2)修改UserDaoImpl类

    在这里插入图片描述

     public void updatePerson(int id, int age, String name) {
            jdbcTemplate.update("update class set age=?,name=? where id=?",age,name,id);
        }
    
    • 1
    • 2
    • 3

    (3)修改UserService类

    在这里插入图片描述

      public void updatePerson(int id,int age,String name);
    
    • 1

    (4)修改UserServiceImpl类

    在这里插入图片描述

    public void updatePerson(int id, int age, String name) {
            userDao.updatePerson(id,age,name);
        }
    
    • 1
    • 2
    • 3

    (5)在jsp文件夹中新建updateperson.jsp

    在这里插入图片描述

    <%--
      Created by IntelliJ IDEA.
      User: Admin
      Date: 2022/9/30
      Time: 16:01
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>更新页面</h1>
    <%--<div>${id}</div>--%>
    <%--<div>${age}</div>--%>
    <%--<div>${name}</div>--%>
    
    <form action="${pageContext.request.contextPath}/updatepersoncommit" method="post">
    <%--    <div>id:<input name="id" value="${id}" ></div>--%>
        <div><input name="id" value="${id}" hidden></div>
        <div>年龄:<input name="age" value="${age}"></div>
        <div>用户名:<input name="name" value="${name}"></div>
        <div><input type="submit" value="提交"></div>
    </form>
    </body>
    </html>
    
    
    • 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

    (6)修改PersonController类

    在这里插入图片描述

      @RequestMapping("updateperson")
        public String updateperson(Model model,int id,int age,String name){
         model.addAttribute("id",id);
            model.addAttribute("age",age);
            model.addAttribute("name",name);
    //        跳到列表
            return "updateperson";
        }
    
        @RequestMapping("updatepersoncommit")
        public String updatepersoncommit(Model model,int id,int age,String name){
            userService.updatePerson(id,age,name);
    //        跳到列表
            return "forward:/personlist";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    (7)修改personlist.jsp

    在这里插入图片描述

    <%--
      Created by IntelliJ IDEA.
      User: Admin
      Date: 2022/9/30
      Time: 15:18
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>
    <a href="${pageContext.request.contextPath}/addperson">增加用户</a>
    </h1>
    <h1>person列表</h1>
    <%--jstl标签--%>
    <table border="1">
        <tr>
            <td>id</td>
            <td>年龄</td>
            <td>姓名</td>
            <td>删除操作</td>
            <td>更新操作</td>
        </tr>
        <c:forEach var="person"  items="${personlist}">
            <tr>
                <td>${person.id}</td>
                <td>${person.age}</td>
                <td>${person.name}</td>
                <td>
                    <a href="${pageContext.request.contextPath}/deleteperson?id=${person.id}">删除用户</a>
                </td>
                <td>
                    <a href="${pageContext.request.contextPath}/updateperson?id=${person.id}&age=${person.age}&name=${person.name}">更新用户</a>
                </td>
            </tr>
        </c:forEach>
    </table>
    </body>
    </html>
    
    
    
    • 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

    (8)点击运行,点击增加用户跳转到增加用户页面,点击删除可以删除用户,点击更新用户可以修改用户信息,刷新数据库修改成功

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    五、资源下载

    下载地址:SpringBoot开发之SpringJDBC
    到此一个完整的数据库增删改操作就基本完成啦,学习道路永无止境,继续努力吧!!!

  • 相关阅读:
    第十届MathorCup高校数学建模挑战赛-B题:养老服务床位需求预测与运营模式研究(续)
    linux sed操作汇总
    详解js数组操作——filter()方法
    软件工程复习笔记
    重学Elasticsearch第2章 : ElasticSearch客户端操作索引、映射、文档
    Vue+SpringBoot打造考研专业课程管理系统
    一文看懂拉格朗日乘子法、KKT条件和对偶问题
    阿里云、腾讯云、华为云:从内卷到外卷
    数据仓库维度建模
    设计一个 SSO 单点登录系统
  • 原文地址:https://blog.csdn.net/qq_61963074/article/details/127126521