springboot-------整合mybatis-plus

引言

1、什么是MyBatis-Plus

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

mybatis plus 官网

建议安装 MybatisX 插件

2、整合MyBatis-Plus

添加依赖

  <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>

3、编写mapper接口,并且标注@Mapper注解(或者直接在***Application里添加包扫描,如下图)

AdminMapper

package com.xiao.boot.mapper;

import com.xiao.boot.bean.Student;
import com.xiao.boot.bean.Teacher;
import org.apache.ibatis.annotations.Mapper;

// @Mapper 如果开启了包扫描就不用写注解了
public interface AdminMapper {

    public Integer addTeacher(Teacher teacher);

    public Integer addStudent(Student student);
}

4、编写sql映射文件并绑定mapper接口 (默认位置在resources/mapper/下)

adminMapper.xml

<?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.xiao.boot.mapper.AdminMapper">
<!--    添加教师信息-->
    <insert id="addTeacher">
        insert into teacher values (#{id},#{name},#{sex},#{academy},#{title})
    </insert>
<!--    添加学生信息-->
    <insert id="addStudent">
        insert into student values (#{id},#{name},#{sex},#{classname},#{major})
    </insert>
</mapper>

5、配置数据源,,并开启驼峰映射规则(采用的yaml文件,默认的是.properties)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/springboot?useSSL=false&serverTimezone=UTC

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true

6、编写service和serviceImpl

service

package com.xiao.boot.service;

import com.xiao.boot.bean.Student;
import com.xiao.boot.bean.Teacher;

public interface AdminService {

    public Integer addTeacher(Teacher teacher);

    public Integer addStudent(Student student);
}

serviceImpl

package com.xiao.boot.service.impl;

import com.xiao.boot.bean.Student;
import com.xiao.boot.bean.Teacher;
import com.xiao.boot.mapper.AdminMapper;
import com.xiao.boot.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class AdminServiceImpl implements AdminService {

    @Autowired
    AdminMapper adminMapper;
    @Override
    public Integer addTeacher(Teacher teacher) {
        return adminMapper.addTeacher(teacher);
    }

    @Override
    public Integer addStudent(Student student) {
        return adminMapper.addStudent(student);
    }
}

7、编写controller实现业务逻辑

package com.xiao.boot.controller;

import com.xiao.boot.bean.Student;
import com.xiao.boot.bean.Teacher;
import com.xiao.boot.mapper.AdminMapper;
import com.xiao.boot.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

@Controller
public class AdminController {

    @Autowired
    AdminService adminService;
    @GetMapping("/add_teacher_page")
    public String add_teacher_page(){
        return "admin/addTeacherPage";
    }

    @GetMapping("/add_student_page")
    public String add_student_page(){
        return "admin/addStudentPage";
    }

    @PostMapping("/admin/add_teacher")
    public String addTeacher(Teacher teacher, RedirectAttributes ra){
        Integer row = adminService.addTeacher(teacher);
        if (row == 1){
            ra.addAttribute("message","添加成功");
        }else {
            ra.addAttribute("message","添加失败");
        }
        return "redirect:/add_teacher_page";
    }

    @PostMapping("/admin/add_student")
    public String addStudent(Student student, RedirectAttributes ra){
        Integer row = adminService.addStudent(student);
        if (row == 1){
            ra.addAttribute("message","添加成功");
        }else {
            ra.addAttribute("message","添加失败");
        }
        return "redirect:/add_student_page";
    }
}

posted @ 2021-01-09 21:49  littlemelon  阅读(144)  评论(0编辑  收藏  举报