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);
}