mybatis、sql、logback等配置及数据增删改查的简单示例


数据持久层框架mybatis的应用

Mybatis和logback的应用配置

配置pom.xml文件:

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

    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.7
         
    

    org.example
    Chapter11
    1.0-SNAPSHOT

    Demo project for Spring Boot
    
        11
        2.7.0
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            io.springfox
            springfox-swagger2
            ${swagger.version}
        
        
            io.springfox
            springfox-swagger-ui
            ${swagger.version}
        
        
            org.projectlombok
            lombok
            1.18.22
        
        
            com.alibaba
            fastjson
            1.2.79
        
        
            mysql
            mysql-connector-java
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.2.1
        
    




配置application.yml文件

配置mysql、mybatis、log、springboot

server:
  port: 8888
logging:
  file:
    path: logs
    name: mylog.log

spring:
  application:
    name: myTest
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://123.123.123.123:3306/course
    username: ******
    password: ******

mybatis:
  type-aliases-package: com.course.model
  mapper-locations:
    - mapper/*

配置logback.xml文件

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

    
    
    
    
        ${LOG_PATH}/${LOG_FILE}
        
            ${LOG_PATH}/${LOG_FILE}.%d{yyyy-MM-dd}
        
        
            ${FILE_LOG_PATTERN}
        
    
    
        
            ${FILE_LOG_PATTERN}
        
    
    
        ${LOG_PATH}/event.log
        
            ${LOG_PATH}/event.%d{yyyy-MM-dd}.log
            30
        
        
            %msg%n
        
    
    
        
    
    
        
        
    

配置mybatis配置文件

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


    
        
    
    
        
    

配置mysql文件

用来写sql语句

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



    

配置启动文件

package com.course;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.scheduling.annotation.EnableScheduling;

import javax.annotation.PreDestroy;

@EnableScheduling
@SpringBootApplication
public class Application {
    private static ConfigurableApplicationContext context;

    public static void main(String[] args) {
        Application.context = SpringApplication.run(Application.class,args);
    }
    @PreDestroy
    public void close(){
        Application.context.close();
    }
}

测试Demo

package com.course.controller;



import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j;
import lombok.extern.log4j.Log4j2;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@Log4j2
@RestController
@Api(value = "v1",description = "这是我第一个版本的demo")
@RequestMapping(value = "v1")
public class Demo {
    //首先获取一个执行sql语句的对象
    @Autowired
    private SqlSessionTemplate  template;

    @RequestMapping(value = "/getUserCount",method = RequestMethod.GET)
    @ApiOperation(value = "可以获取到用户数",httpMethod = "GET")
    public int getUserCount(){
       return template.selectOne("getUserCount");

    }
}

mybatis-sql,增加数据

新增mysql文件

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



    

    
        insert into user(id,name,age,sex)
        values (#{id},#{name},#{age},#{sex})
    

新增数据结构User

package com.course.model;

import lombok.Data;

@Data
public class User {
    private int id;
    private String name;
    private int age;
    private String sex;
}

新增接口addUser

package com.course.controller;



import com.course.model.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j;
import lombok.extern.log4j.Log4j2;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@Log4j2
@RestController
@Api(value = "v1",description = "这是我第一个版本的demo")
@RequestMapping(value = "v1")
public class Demo {
    //首先获取一个执行sql语句的对象
    @Autowired
    private SqlSessionTemplate  template;

    @RequestMapping(value = "/getUserCount",method = RequestMethod.GET)
    @ApiOperation(value = "可以获取到用户数",httpMethod = "GET")
    public int getUserCount(){
       return template.selectOne("getUserCount");

    }
    @RequestMapping(value = "addUser",method = RequestMethod.POST)
    @ApiOperation(value = "增加用户",httpMethod = "POST")
    public int addUser(@RequestBody User user){
        return template.insert("addUser",user);
    }
}

mybatis-sql,更新数据

新增mysql文件

    
        update user set name =#{name},age=#{age}
        where id=#{id}
    

新增接口updateUser

    @RequestMapping(value = "updateUser",method = RequestMethod.POST)
    @ApiOperation(value = "更新用户",httpMethod = "POST")
    public int updateUser(@RequestBody User user){
        return template.update("updateUser",user);
    }

mybatis-sql,删除数据

新增mysql文件

    
        delete from user where id = #{id}
    

新增接口deleteUser

    @RequestMapping(value = "deleteUser",method = RequestMethod.POST)
    @ApiOperation(value = "删除用户",httpMethod = "POST")
    public int deleteUser(@RequestParam int id){
        return template.delete("deleteUser",id);
    }