IDEA+Springboot+Mybatis+MySql+Swagger3.0 的实现 增、删、改、查

  • 选择File->new->Project

  • 创建Group包名,Atrifact项目名

  • 添加需要的jar包配置

  • 在com.xj.demo包下分别创建config、controller、mapper、model、service包名,注意包名创建后,最好不要修改否则会有奇怪问题

  • 编辑application.properties文件,添加MySql、Mybatis参数配置
#基本配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/business?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
#使用mysql
spring.jpa.database = mysql
#是否显示sql语句
spring.jpa.show-sql=true
#mybatis配置 mybatis.config-location=classpath:mybatis-config.xml // 配置文件位置
mybatis.typeAliasesPackage=com.xj.demo.model 
mybatis.mapper-locations=classpath:mapper/*.xml
  • 在resources文件下,创建文件夹mapper,并创建User_infoMapper.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.xj.demo.mapper.User_infoMapper">

    <!---查询列表-->
    <select id="selectList" resultType="User_info">
    select * from User_info
    </select>

    <!-- 增加 -->
    <insert id="addUser" parameterType="com.xj.demo.model.User_info">
        INSERT INTO user_info
        (id,uname,create_time)
        VALUES
        (#{id},#{uname},#{create_time})
    </insert>

    <!-- 修改 -->
    <update id="editUser"  parameterType="com.xj.demo.model.User_info" >
        update user_info set uname=#{uname},create_time=#{create_time}
        where id=#{id}
    </update>

    <!-- 删除 -->
    <delete id="delUser"  parameterType="java.lang.String" >
        delete from  user_info
        where id=#{id}
    </delete>

</mapper>
  • config、controller、mapper、model、service包下代码如下
  Swagger3Config 接口swagger类,需要在pom.xml文件中,添加引用
   <!-- swagger3.0 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
package com.xj.demo.config;

import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Contact;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class Swagger3Config {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger3接口文档")
                .description("更多请咨询服务开发者Ray。")
                .version("1.0")
                .build();
    }
}

  model类

package com.xj.demo.model;

import java.util.Date;

public class User_info {
    private String  id;
    private String uname;
    private Date create_time;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return uname;
    }

    public void setName(String name) {
        this.uname = name;
    }

    public Date getCreate_time() {
        return create_time;

    }

    public void setCreate_time(Date name) {
        this.create_time = name;
    }
}

  

  User_infoMapper接口类
package com.xj.demo.mapper;

import com.xj.demo.model.User_info;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface User_infoMapper {

    // 查询列表
    public List<User_info> selectList();

    //添加
    public  int addUser(User_info user);

    //修改
    public  int editUser(User_info user);

    //删除
    public  int delUser(String id);
}

  User_infoService类

package com.xj.demo.service;

import com.xj.demo.mapper.User_infoMapper;
import com.xj.demo.model.User_info;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class User_infoService implements User_infoMapper {

    @Autowired
    private  User_infoMapper uMapper;

    @Override
    public List<User_info> selectList() {
        return uMapper.selectList();
    }

    @Override
    public int addUser(User_info user) {
        return uMapper.addUser(user);
    }

    @Override
    public int editUser(User_info user) {
        return uMapper.editUser(user);
    }

    @Override
    public int delUser(String id) {
        return uMapper.delUser(id);
    }
}

  controller类

package com.xj.demo.controller;

import com.xj.demo.model.User_info;
import com.xj.demo.service.User_infoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.oas.annotations.EnableOpenApi;

import java.util.Date;
import java.util.List;
import java.util.UUID;

@Api(tags = "用户信息管理")
@RestController
@RequestMapping("/user")
public class User_infoController {

    @Autowired
    private User_infoService userService;

    @ApiOperation("测试接口")
    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }

    @ApiOperation("增加用户")
    @PostMapping("/addUser")
    public int addUser( @RequestBody User_info  user){
        user.setCreate_time(new Date());
        user.setId(UUID.randomUUID().toString());
        return userService.addUser(user);
    }

    @ApiOperation("删除用户")
    @PostMapping("/delUser")
    public int delUser( @RequestBody String  id){
        return userService.delUser(id);
    }

    @ApiOperation("修改用户")
    @PostMapping("/editUser")
    public int editUser( @RequestBody User_info  user){
        user.setCreate_time(new Date());
        return userService.editUser(user);
    }

    @ApiOperation("查询列表")
    @GetMapping("/selectList")
    public List<User_info> selectList() {
        return userService.selectList();
    }



}

   DemoApplication 类

package com.xj.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;

@EnableOpenApi  //swagger3.0
@SpringBootApplication
@MapperScan("com.xj.demo.mapper")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

  pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.xj</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <kotlin.version>1.4.0</kotlin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- swagger3.0 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>



    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.2.8.RELEASE</version>
            </plugin>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jvmTarget>1.8</jvmTarget>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>testCompile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>
View Code

   最后在url输入http://localhost:8080/swagger-ui/index.html,查看效果

  使用PostMan测试接口,效果:

  源码下载:https://download.csdn.net/download/haojuntu/12717787

  


原文地址:https://www.cnblogs.com/personblog/p/13513592.html