Spring boot整合MyBatis增删改查

版权声明:本文为博主原创文章,未经博主允许不得转载

搭建项目所需要选择的东西

在这里插入图片描述

1.pom.xml所需jar包

<?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 http://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.1.3.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.mr</groupId>
   <artifactId>springboot_mybatis</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>springboot_mybatis</name>
   <description>Demo project for Spring Boot</description>

   <properties>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <!--SpringBoot热部署-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
         <scope>provided</scope>
         <optional>true</optional>
      </dependency>
      <!--加载静态文件模板第二种方法,freemarker-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-freemarker</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <!--mybatis-->
      <dependency>
         <groupId>org.mybatis.spring.boot</groupId>
         <artifactId>mybatis-spring-boot-starter</artifactId>
         <version>2.0.0</version>
      </dependency>
      <!--mysql-->
      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <scope>runtime</scope>
      </dependency>
      <!--lombox-->
      <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <optional>true</optional>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>

      <!--alibaba的druid数据库连接池-->
      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid-spring-boot-starter</artifactId>
         <version>1.1.10</version>
      </dependency>
   </dependencies>

   <build>
      <!--扫描xml所需jar包-->
      <resources>
         <resource>
            <directory>src/main/java</directory>
            <includes>
               <include>**/*.xml</include>
            </includes>
         </resource>
      </resources>

      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

</project>
``

2.SpringBoot整合MyBatis配置文件

application.properties

# mybatis 配置
#使用mybatis配置文件,需要指定该文件的文件路径
#指定mapper.xml文件的路径,如果mapper.xml与接口在一起则不需要该配置
#扫描pojo包中的实体类并起别名
#日志级别改为debug可以显示sql语句,logging.level后为存放mapper接口的包
#mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.type-aliases-package=com.mr.model
logging.level.com.mr.mapper=debug
# 开启驼峰命名法 mybatis.configuration.map-underscore-to-camel-case: true
mybatis.configuration.map-underscore-to-camel-case=true

#配置数据源
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/数据库名?serverTimezone=GMT%2B8
#德鲁伊 连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

3.user.java实体类

```package com.mr.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * .
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Integer userId;
    private String userName;
    private String userPass;

}

4.增删改查

(1)UserController.java


import com.mr.model.User;
import com.mr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 
 */
//@RestController
    @Controller
public class UserController {
    @Autowired
    private IUserService userService;
//    /**
//     * 查询全部
//     */
//    @GetMapping("queryList")
//    public List<User> queryList(){
//       List<User> list= userService.queryList();
//       return list;
//    }
//    /**
//     * 根据Id查询单条数据
//     */
//    @GetMapping("/user/{id}")
//    public User getById(@PathVariable("id") Integer id){
//        User user=userService.getById(id);
//        return user;
//
//    }
    /**
     * 查询list集合
     */
  @GetMapping("/user")
    public String list(ModelMap map){

      List<User> list=userService.list();
      map.put("list",list);
      return "list";
  }
    /**
     * 跳转到增加页面
     */
    @GetMapping("addUser")
    public String addUser(){
        return "add";
    }

    /**
     * 增加
     * @param user
     * @return
     */
  @PostMapping("/user")
    public String save(User user){
      userService.save(user);
      return "redirect:/user";
  }

    /**
     * 删除
     */
    @DeleteMapping("/user/{userId}")
    public String del(@PathVariable Integer userId){
        userService.del(userId);
        return "redirect:/user";
    }
    /**
     * 跳转到修改页面
     */
    @RequestMapping("/updatePage/{userId}")
    public String updatePage(@PathVariable Integer userId,ModelMap map){
        User user=userService.findById(userId);
        map.put("user",user);
        return "update";
    }
    /**
     * 修改数据
     */
    @PutMapping("/user")
    public String update(User user){
        userService.update(user);
        return "redirect:/user";
    }
}

(2)IUserService.java


import com.mr.model.User;

import java.util.List;

/**
 * 
 */
public interface IUserService {

   /* *//**
     * 查询全部
     *//*
    List<User> queryList();
    *//**
     * 根据Id查询单条数据
     *//*
    User getById(Integer id);*/

    /**
     * 查询list集合
     */
    List<User> list();
    /**
     * 增加
     * @param user
     * @return
     */
    void save(User user);

    /**
     * 删除
     * @param userId
     */
    void del(Integer userId);
    /**
     * 跳转到修改页面
     */
    User findById(Integer userId);

    /**
     * 修改
     * @param user
     */
    void update(User user);
}

(3)UserServiceImpl.java


import com.mr.mapper.UserMapper;
import com.mr.model.User;
import com.mr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 
 */
@Service(value="userService")
public class UserServiceImpl implements IUserService {
    @Autowired
    private UserMapper userMapper;

    /**
     * 查询全部
     */
   /* @Override
    public List<User> queryList() {
        return userMapper.queryList();
    }*/

    /**
     * 根据Id查询单条数据
     */
   /* @Override
    public User getById(Integer id) {
        User user=userMapper.selectByPrimaryKey(id);
        return user;

    }
    */
    /**
     * 查询list集合
     */

    @Override
    public List<User> list() {
        return userMapper.selectByExample();
    }

    /**
     * 增加
     * @param user
     */
    @Transactional
    @Override
    public void save(User user) {
        userMapper.save(user);

    }

    /**
     * 删除
     * @param userId
     */
    @Override
    @Transactional
    public void del(Integer userId) {

        userMapper.del(userId);
    }

    /**
     * 跳转到修改页面
     */
    @Override
    public User findById(Integer userId) {
        return userMapper.findById(userId);
    }

    /**
     * 修改
     * @param user
     */
    @Override
    @Transactional
    public void update(User user) {
        userMapper.update(user);
    }


}

(4).UserMapper.java


import com.mr.model.User;

import java.util.List;

/**
 *
 */

public interface UserMapper {


    /**
     * 查询全部
     */
    //List<User> queryList();


    /**
     * 根据Id查询单条数据
     */
    //User selectByPrimaryKey(Integer id);

    /**
     * 查询list集合
     */
    List<User> selectByExample();

    /**
     * 增加
     * @param user
     * @return
     */
    void save(User user);

    /**
     * 删除
     * @param userId
     */
    void del(Integer userId);

    /**
     * 跳转到修改页面
     */
    User findById(Integer userId);

    /**
     * 修改
     * @param
     */
    void update(User user);
}

(5).UserMapper.xml

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mr.mapper.UserMapper">
    <sql id="userCol">
        user_id,user_name,user_pass
    </sql>
    <sql id="userAddCol">
        user_name,user_pass
    </sql>
    <!--查询全部-->
    <!-- List<User> queryList();-->
    <!--<select id="queryList" resultType="user">
        select  user_id,user_name,user_pass from t_user
    </select>-->
    <!-- 根据Id查询单条数据-->
<!--  User selectByPrimaryKey(Integer id);-->
  <!--  <select id="selectByPrimaryKey" parameterType="user" resultType="user">
        select * from t_user where user_id=#{userId}
    </select>-->
    <!-- 查询list集合-->
    <!--  List<User> selectByExample();-->
    <select id="selectByExample" resultType="user">
        select <include refid="userCol"></include> from t_user
    </select>
    <!--新增-->
    <!-- void save(User user);-->
    <insert id="save" parameterType="user">
        insert into t_user(<include refid="userAddCol"></include>)
        values(#{userName},#{userPass})
    </insert>
    <!--删除-->
    <!-- void del(Integer userId);-->
    <delete id="del" parameterType="int" >
        delete from t_user where user_id=#{userId}
    </delete>

    <!--  /**
     * 跳转到修改页面
     */
    User findById(Integer userId);-->
    <select id="findById" parameterType="int" resultType="user">
        select <include refid="userCol"></include> from t_user where user_id=#{userId}
    </select>
    <!--
    /**
     * 修改
     * @param
     */
    void update(User user);-->
    <update id="update" parameterType="user">
      update t_user set user_name=#{userName},user_pass=#{userPass}
       where user_id=#{userId}
    </update>

</mapper> 


(6).list.ftl

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="/addUser">增加</a>
    <table border="1">
        <tr>
            <td>编号</td>
            <td>姓名</td>
            <td>密码</td>
            <td>操作</td>
        </tr>
        <#list list as user>
            <tr>
                <th>${user.userId}</th>
                <th>${user.userName}</th>
                <th>${user.userPass}</th>
                <th>
                    <a href="javascript:del(${user.userId})">删除</a>
                    <a href="/updatePage/${user.userId}">修改</a>
                </th>
            </tr>
        </#list>

    </table>
    <!--
        发送一个delete请求的规范
        1:method="post"
        2:传递一个参数_method delete put
    -->
    <form method="post" id="delForm">
        <input type="hidden" name="_method" value="DELETE"/>
    </form>
    <script>
        function del(userId) {
                var form = document.getElementById("delForm");
                form.setAttribute("action","/user/"+userId)
                form.submit();

        }
    </script>
</body>
</html>

(7).add.ftl

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/user" method="post">
        姓名:<input name="userName"/>
        <br/>
        密码:<input name="userPass"/>
        <br/>
        <input type="submit"/>
    </form>
</body>
</html>

(8).update.ftl

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/user" method="post">
    <input type="hidden" name="_method" value="put"/>
    <input name="userId" type="hidden" value="${user.userId}"/>
    <br/>
    姓名:<input name="userName" value="${user.userName}"/>
    <br/>
    密码:<input name="userPass" value="${user.userPass}"/>
    <br/>
    <input type="submit"/>
</form>
</body>
</html>

注意:启动类上需要加上@MapperScan(“com.mr.mapper”)

猜你喜欢

转载自blog.csdn.net/weixin_44914784/article/details/89299909