Spring boot5之整合mybatis

Spring boot整合mybatis

  • 配置pom.xml

    1 <?xml version="1.0" encoding="UTF-8"?>

    2 <project xmlns="http://maven.apache.org/POM/4.0.0"

    3                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    4                   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    5         <modelVersion>4.0.0</modelVersion>

    6 

    7         <groupId>com.wiggin</groupId>

    8         <artifactId>springbootmybatis</artifactId>

    9         <version>1.0-SNAPSHOT</version>

   10 

   11         <parent>

   12                 <groupId>org.springframework.boot</groupId>

   13                 <artifactId>spring-boot-parent</artifactId>

   14                 <version>2.1.5.RELEASE</version>

   15         </parent>

   16 

   17         <dependencies>

   18 

   19                 <dependency>

   20                         <groupId>org.springframework.boot</groupId>

   21                         <artifactId>spring-boot-starter-web</artifactId>

   22                 </dependency>

   23                 <dependency>

   24                         <groupId>org.mybatis.spring.boot</groupId>

   25                         <artifactId>mybatis-spring-boot-starter</artifactId>

   26                         <version>1.3.1</version>

   27                 </dependency>

   28                 <dependency>

   29                         <groupId>mysql</groupId>

   30                         <artifactId>mysql-connector-java</artifactId>

   31                 </dependency>

   32                 <dependency>

   33                         <groupId>org.projectlombok</groupId>

   34                         <artifactId>lombok</artifactId>

   35                 </dependency>

   36 

   37 

   38         </dependencies>

   39 

   40 </project>

  • 创建实体类Student

    1 package com.wiggin.entity;

    2 

    3 import lombok.Data;

    4 

    5 import java.util.Date;

    6 

    7 // 创建表不用关联数据库

    8 @Data

    9 public class Student {

   10         private Long id;

   11         private String name;

   12         private int score;

   13         private Date birthday;

   14 }

  • 创建接口StudentRepository

    1 package com.wiggin.repository;

    2 

    3 import com.wiggin.entity.Student;

    4 

    5 import java.util.List;

    6 

    7 public interface StudentReposity {

    8         public List<Student> findAll();

    9         public Student findById(Long id);

   10         public void save(Student student);

   11         public void update(Student student);

   12         public void deleteById(Long id);

   13 }

  • 在recourses中的mapping文件创建StudentRepository接口对应的Mapper.xml

    1 <?xml version="1.0" encoding="UTF-8"?>

    2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

    3 

    4 <mapper namespace="com.wiggin.repository.StudentRepository">

    5         <select id="findAll" resultType="Student">

    6                 select * from student

    7         </select>

    8         <select id="findById" parameterType="java.lang.Long" resultType="Student">

    9                 select * from student where id = #{id}

   10         </select>

   11         <insert id="save" parameterType="Student">

   12                 insert into student(name,score,birthday) values (#{name},#{score},#{birthday})

   13         </insert>

   14         <update id="update" parameterType="Student">

   15                 update student set name = #{name},score = #{score},birthday = #{birthday} where id = #{id}

   16         </update>

   17         <delete id="deleteById" parameterType="java.lang.Long">

   18                 delete student where id = #{id}

   19         </delete>

   20 </mapper>

  • 创建StudentHandler,注入StudentRepository

    1 package com.wiggin.controller;

    2 

    3 import com.wiggin.entity.Student;

    4 import com.wiggin.repository.StudentRepository;

    5 import org.springframework.beans.factory.annotation.Autowired;

    6 import org.springframework.stereotype.Controller;

    7 import org.springframework.web.bind.annotation.*;

    8 

    9 import java.util.List;

   10 

   11 

   12 @RestController

   13 @RequestMapping("/student")

   14 public class StudentHandler {

   15         @Autowired

   16         private StudentRepository studentRepository;

   17 

   18         @GetMapping("/findAll")

   19         public List<Student> findAll(){

   20                 return studentRepository.findAll();

   21         }

   22         @GetMapping("/findById/{id}")

   23         public Student findById(@PathVariable("id") Long id){

   24                 return studentRepository.findById(id);

   25         }

   26         @PostMapping("/save")

   27         public void save(@RequestBody Student student){

   28                 studentRepository.save(student);

   29         }

   30         @PutMapping("/update")

   31         public void update(@RequestBody Student student){

   32                 studentRepository.update(student);

   33         }

   34         @DeleteMapping("/deleteById/{id}")

   35         public void deleteById(@PathVariable("id") Long id){

   36                 studentRepository.deleteById(id);

   37         }

   38 }

  • 创建application.yml

    1 spring:

    2     datasource:

    3         url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

    4         username: root

    5         password: 123456

    6         driver-class-name: com.mysql.cj.jdbc.Driver

    7 mybatis:

    8     # classpath代表resources文件,*.xml扫描所有的mapping.xml文件

    9     mapper-locations: classpath:/mapping/*.xml

   10     # 指定实体类的包名,在mapping中不用写包名

   11     

  • 创建Application启动类

    1 package com.wiggin;

    2 

    3 import org.mybatis.spring.annotation.MapperScan;

    4 import org.springframework.boot.SpringApplication;

    5 import org.springframework.boot.autoconfigure.SpringBootApplication;

    6 

    7 @SpringBootApplication

    8 // 将包扫入ioc中,这样才能取出

    9 @MapperScan("com.wiggin.repository")

   10 public class Application {

   11         public static void main(String[] args) {

   12                 SpringApplication.run(Application.class,args);

   13         }

   14 }

 

原文地址:https://www.cnblogs.com/wigginess/p/13499410.html