IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【SpringBoot】SSM案例 -> 正文阅读

[Java知识库]【SpringBoot】SSM案例

【SpringBoot】SSM案例

一、整合SSM

  1. 新建springboot项目
    在这里插入图片描述

  2. 最终版本的pom依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.6.4</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>SpringBootDemoSSM</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>SpringBootDemoSSM</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.2.2</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
            <!--连接池依赖-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.2.6</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <!--开启热部署-->
                    <configuration>
                        <fork>true</fork>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    
  3. 配置数据库及mybatis

    # jdbc的相关配置
    # MySQL的版本不同,需要的驱动器也不同
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://*.*.*.*:3306/springboot?serverTimezone=UTC
    spring.datasource.username=***
    spring.datasource.password=***
    
    # 配置连接池
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    
    # 指定mybatis的别名
    mybatis.type-aliases-package=com.example.mapper
    
    #指定MyBatis的映射文件的路径
    mybatis.mapper-locations=classpath:mapper/*.xml
    
  4. 数据表结构

    CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) DEFAULT NULL, 
    `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
  5. 新建数据表对应实体类

    package com.example.entity;
    
    public class User {
    
        private Integer id;
    
        private String name;
    
        private Integer age;
    	//省略getter、setter、toString
    }
    
    
  6. 创建UserMapper接口

    package com.example.mapper;
    
    import com.example.entity.User;
    
    import java.util.List;
    
    public interface UserMapper {
    
        /**
         * 查询所有用户
         * @return
         */
        public List<User> queryAll();
    }
    
    
  7. 在resource目录下创建mapper文件夹,在文件夹中新建文件UserMapper.xml

    • 文件名与UserMapper接口一致

    • id对应UserMapper接口中的方法名

    • 命名空间对应UserMapper全限定路径名

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.example.mapper.UserMapper">
        <select id="queryAll" resultType="com.example.entity.User">
            select * from users
        </select>
    </mapper>
    
  8. 新建service接口与接口实现

    package com.example.service;
    
    import com.example.entity.User;
    
    import java.util.List;
    
    public interface IUserService {
    
        /**
         * 查询全部用户
         * @return
         */
        public List<User> queryAll();
    }
    
    package com.example.service.impl;
    
    import com.example.entity.User;
    import com.example.mapper.UserMapper;
    import com.example.service.IUserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class UserServiceImpl implements IUserService {
    
        @Autowired
        private UserMapper userMapper;
    
        @Override
        public List<User> queryAll() {
            return userMapper.queryAll();
        }
    }
    

    接口实现中在使用UserMapper接口对象的时候会报红,这个不影响

  9. 创建Controller层

    package com.example.controller;
    
    import com.example.entity.User;
    import com.example.service.IUserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    public class UserController {
    
        @Autowired
        private IUserService userService;
    
        @RequestMapping("/user/queryAll")
        public List<User> queryAll(){
            return userService.queryAll();
        }
    }
    
  10. 测试

    在浏览器中输入:

    localhost:8080/user/queryAll

二、实现CRUD操作

2.1 结合thymeleaf实现用户展示

  1. 新建前端模板user.html

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>用户信息</title>
    </head>
    <body>
        <h1>用户管理</h1>
        <table border="1" style="width: 300px">
            <tr>
                <th>用户ID</th>
                <th>用户姓名</th>
                <th>用户年龄</th>
            </tr>
            <tr th:each="user:${list}">
                <td th:text="${user.id}"></td>
                <td th:text="${user.name}"></td>
                <td th:text="${user.age}"></td>
            </tr>
        </table>
    </body>
    </html>
    
  2. controller设置前端传值

    package com.example.controller;
    
    import com.example.service.IUserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    //返回页面就不可以再用@RestController注解了
    //@RestController
    @Controller
    public class UserController {
    
        @Autowired
        private IUserService userService;
    
        @RequestMapping("/user/queryAll")
        public String queryAll(Model model){
            model.addAttribute("list",userService.queryAll())
            return "user";
        }
    }
    
  3. 测试

    鼠标点击,测试页面:用户信息

2.2 实现用户新增

  1. 修改用户展示页面,增加用户新增按钮

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>用户信息</title>
    </head>
    <body>
    <h1>用户管理</h1>
    <a href="/user/addPage">新增用户</a>
    <table border="1" style="width: 300px">
        <tr>
            <th>用户ID</th>
            <th>用户姓名</th>
            <th>用户年龄</th>
        </tr>
        <tr th:each="user:${list}">
            <td th:text="${user.id}"></td>
            <td th:text="${user.name}"></td>
            <td th:text="${user.age}"></td>
        </tr>
    </table>
    </body>
    </html>
    
  2. 新增用户新增页面userAdd.html

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>用户信息</title>
    </head>
    <body>
    <h1>添加用户</h1>
    <form th:action="@{/user/save}" method="post">
        <label>姓名:</label><input type="text" name="name"><br>
        <label>年龄:</label><input type="text" name="age"><br>
        <input type="submit" value="提交">
    </form>
    
    </body>
    </html>
    
  3. 编辑UserMapper接口类与UserMapper.xml文件

    /**
    * 新增用户
    * @return
    */
    public Integer addUser(User user);
    
    <insert id="addUser" parameterType="com.example.entity.User">
        insert into users (name,age)VALUES(#{name},#{age})
    </insert>
    
  4. 修改service

    //IUserService
    
    /**
    * 新增用户
    * @return
    */
    public Integer addUser(User user);
    
    // UserServiceImpl
    @Override
    public Integer addUser(User user) {
        return userMapper.addUser(user);
    }
    
  5. 修改controller

    /**
     * 跳转用户新增页面
     * @return
     */
    @RequestMapping("/user/addPage")
    public String addPage(){
        return "userAdd";
    }
    
    /**
     * 跳回用户展示页面
     * @param user
     * @return
     */
    @RequestMapping("/user/save")
    public String userSave(User user){
        userService.addUser(user);
        return "redirect:/user/queryAll";
    }
    

2.3 用户修改

  1. 修改用户展示页面,增加修改按钮

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>用户信息</title>
    </head>
    <body>
    <h1>用户管理</h1>
    <a href="/user/addPage">新增用户</a>
    <table border="1" style="width: 300px">
        <tr>
            <th>用户ID</th>
            <th>用户姓名</th>
            <th>用户年龄</th>
            <th>操作</th>
        </tr>
        <tr th:each="user:${list}">
            <td th:text="${user.id}"></td>
            <td th:text="${user.name}"></td>
            <td th:text="${user.age}"></td>
            <td>
                <a th:href="@{/user/updatePage(id=${user.id})}">修改</a>
            </td>
        </tr>
    </table>
    </body>
    </html>
    
  2. 增加用户修改页面

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>用户信息</title>
    </head>
    <body>
    <h1>更新用户</h1>
    <form th:action="@{/user/update}" method="post">
        <input type="hidden" name="id" th:value="${user.id}">
        <label>姓名:</label><input type="text" name="name" th:value="${user.name}"><br>
        <label>年龄:</label><input type="text" name="age" th:value="${user.age}"><br>
        <input type="submit" value="提交">
    </form>
    
    </body>
    </html>
    
  3. 编辑UserMapper接口类与UserMapper.xml文件

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    public User queryById(Integer id);
    
    /**
     * 修改用户
     * @param user
     * @return
     */
    public Integer updateUser(User user);
    
    <select id="queryById" resultType="com.example.entity.User" >
        select * from users where id = #{id}
    </select>
    
    <update id="updateUser" parameterType="com.example.entity.User">
        update users set name=#{name},age=#{age} where id =#{id}
    </update>
    
  4. 修改service

    //IUserService
    
    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    public User queryById(Integer id);
    
    /**
     * 修改用户
     * @param user
     * @return
     */
    public Integer updateUser(User user);
    
    // UserServiceImpl
    
    @Override
    public User queryById(Integer id) {
        return userMapper.queryById(id);
    }
    
    @Override
    public Integer updateUser(User user) {
        return userMapper.updateUser(user);
    }
    
  5. 修改controller

    /**
     * 查询需要修改的用户信息,并将其展示到修改页面
     * @param id
     * @param model
     * @return
     */
    @RequestMapping("/user/updatePage")
    public String updateInfo(Integer id,Model model){
        User user = userService.queryById(id);
        model.addAttribute("user",user);
        return "userUpdate";
    }
    
    /**
     * 修改用户
     * @param user
     * @return
     */
    @RequestMapping("/user/update")
    public String updateUser(User user){
        userService.updateUser(user);
        return "redirect:/user/queryAll";
    }
    

2.4 删除用户

参照用户查询、新增、修改

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:17:51  更:2022-03-10 22:20:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:08:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码