zoukankan      html  css  js  c++  java
  • 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 }

     

  • 相关阅读:
    Synchronized和Lock的实现原理和锁升级
    如何禁止CPU指令重排
    MESI缓存一致性
    归并排序
    强软弱虚四种引用和ThreadLocal内存泄露
    VINS-Mono代码分析与总结(完整版)
    IMU误差模型与校准
    小感
    K8S conul部署
    Centos Consul集群及Acl配置
  • 原文地址:https://www.cnblogs.com/wigginess/p/13499410.html
Copyright © 2011-2022 走看看