欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot集成mybatis-plus全過(guò)程

 更新時(shí)間:2024年09月21日 09:19:37   作者:zhuang先森  
本文詳細(xì)介紹了如何在SpringBoot環(huán)境下集成MyBatis-Plus,包括配置maven依賴、application.yaml文件、創(chuàng)建數(shù)據(jù)庫(kù)和Java實(shí)體類、Mapper層、Service層和Controller層的設(shè)置,同時(shí),還涵蓋了時(shí)間自動(dòng)填充、分頁(yè)查詢、多對(duì)一和一對(duì)多的數(shù)據(jù)庫(kù)映射關(guān)系設(shè)置

springboot集成mybatis-plus

環(huán)境:

  • jdk 1.8
  • springboot: 2.5.14

一、配置

1、maven依賴

  <dependencies>
 <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
    </dependencies>
    
     <!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng) -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        
   <dependencies>
        
    <dependencyManagement>
        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.5.14</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

2、配置文件application.yaml

#數(shù)據(jù)源配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://1.13.152.218:3306/mp?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: zhuang123
    
#數(shù)據(jù)庫(kù)名稱
project:
  database: mysql
  
#mybatis-plus配置
mybatis-plus:
  configuration:
    #sql日志打印
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #開(kāi)啟駝峰命名匹配
    map-underscore-to-camel-case: true
    #mapper文件
  mapper-locations: classpath:mapper/${project.database}/**/*.xml,classpath:mapper/*.xml
  #數(shù)據(jù)庫(kù)實(shí)體類的包全路徑,方便在mapper.xml中不許使用實(shí)體類的全路徑,寫類名就行(不區(qū)分大小寫)
  type-aliases-package: com.zhuang.mp.entity
  global-config:
    db-config:
      #邏輯刪除
      logic-delete-value: 0
      logic-not-delete-value: 1
      logic-delete-field: deleted

二、創(chuàng)建過(guò)程

1.創(chuàng)建數(shù)據(jù)庫(kù)與java實(shí)體類

新建user表:

java實(shí)體類:

package com.zhuang.mp.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;


@Data
@Builder
@TableName(value = "user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    @JsonAlias("user_name")
    private String name;
    @JsonAlias("user_age")
    private Integer age;
    @JsonAlias("user_email")
    private String email = "862627527@qq.com";
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    //后端傳給前端的時(shí)間格式
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //前端傳給后端的時(shí)間格式
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonAlias("create_time")
    private Date createTime;
    @JsonAlias("update_time")
    @TableField(value = "update_time" ,fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

}

2.mapper或dao層

UserMapper接口:繼承BaseMapper<T>, T為實(shí)體類User,需要加上@Mapper注解,如果不加注解需要在啟動(dòng)類上加@MapperScan注解

package com.zhuang.mp.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhuang.mp.entity.User;
import com.zhuang.mp.entity.UserVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper extends BaseMapper<User> {

    List<User> searchByAges(@Param("ages") List<Long> ages);

    List<UserVo> selectBynames(@Param("names") List<String> names);
}

3.mapper.xml文件

一般放在類路徑下:src/main/resources/mapper/

設(shè)置命名空間 namespace

namespace=“com.zhuang.mp.mapper.UserMapper

<?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.zhuang.mp.mapper.UserMapper">

    <resultMap id="userResultMap" type="User">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="age" column="age"/>
        <result property="email" column="email"/>
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>

    <select id="searchByAges" resultType="com.zhuang.mp.entity.User">
        select * from user where age in
        <foreach collection="ages" item="age" open="(" close=")" separator=",">
            #{age}
        </foreach>
    </select>
    <select id="selectBynames" resultType="UserVo">
        select name
        from user where
        <foreach collection="names" item="name" separator="or">
        name like "%"#{name}"%"
        </foreach>

    </select>


</mapper>

4.service層

UserService接口:需要繼承IService<T>, T 為實(shí)體類User

package com.zhuang.mp.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhuang.mp.entity.User;
import com.zhuang.mp.entity.UserVo;

import java.util.List;

/**
 * @program: mp
 * @description:
 * @author: mrzhuang
 * @create: 2022-12-15 00:48
 **/

public interface UserService extends IService<User> {

    int addUser(User user);

    int updateUser(User user);

    Page<User> searchPage(Page<User> page);

    List<User> searchByAges(List<Long> ages);

    List<UserVo> selectBynames(List<String> names);
}

UsrServiceIpml實(shí)現(xiàn)類:需要繼承ServiceImpl<M extends BaseMapper, T>, M為接口UserMapper, T為實(shí)體類User,需要加上@Service注解

package com.zhuang.mp.service.impl;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhuang.mp.entity.User;
import com.zhuang.mp.entity.UserVo;
import com.zhuang.mp.mapper.UserMapper;
import com.zhuang.mp.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * @program: mp
 * @description:
 * @author: mrzhuang
 * @create: 2022-12-15 00:49
 **/
@DS("slave_1")
@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    @Resource
    private UserMapper userMapper;

    @Override
    public int addUser(User user) {
        int insert = userMapper.insert(user);
        return insert;

    }

    @Override
    public int updateUser(@RequestBody User user) {
        int update = userMapper.updateById(user);
        return update;
    }

    @Override
    public Page<User> searchPage(Page<User> page) {
        Page<User> userPage = userMapper.selectPage(page, null);
        return userPage;
    }

    @Override
    public List<User> searchByAges(List<Long> ages) {
        List<User> list = userMapper.searchByAges(ages);
        return list;
    }

    @Override
    public List<UserVo> selectBynames(List<String> names) {
        return userMapper.selectBynames(names);
    }
}

5.controller層

UserController類:

package com.zhuang.mp.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhuang.mp.entity.User;
import com.zhuang.mp.entity.UserVo;
import com.zhuang.mp.enums.CodeEnum;
import com.zhuang.mp.service.UserService;
import com.zhuang.mp.vo.PageVo;
import com.zhuang.mp.vo.ResponseVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @program: mp
 * @description:
 * @author: mrzhuang
 * @create: 2022-12-17 21:40
 **/
@Slf4j
@Api(tags = "用戶接口")
@RestController
@RequestMapping("/user")
public class UserController {

    @Resource
    UserService userService;

    @ApiOperation("用戶增加")
    @RequestMapping("/add")
    public ResponseVo<User> addUser(@RequestBody User user){
        log.info("user: {}", user);
        int insert = userService.addUser(user);
        if (insert > 0){
            log.info("插入成功!");
            return new ResponseVo<>(CodeEnum.SUCESS.code, CodeEnum.SUCESS.message);
        }
        log.error("插入失??!");
        return new ResponseVo<>(CodeEnum.FAILUIRE.code, CodeEnum.FAILUIRE.message);

    }

    @RequestMapping("/update")
    public ResponseVo<User> updateUser(@RequestBody User user){
        log.info("user: {}", user);
        int update = userService.updateUser(user);
        if (update > 0){
            log.info("更新成功!");
            return new ResponseVo<>(CodeEnum.SUCESS.code, CodeEnum.SUCESS.message);
        }
        log.error("更新失敗!");
        return new ResponseVo<>(CodeEnum.FAILUIRE.code, CodeEnum.FAILUIRE.message);

    }

    @PostMapping("/searchPage")
    public ResponseVo<PageVo<User>> searchPage(@RequestBody Page<User> page){
        Page<User> userPage = userService.searchPage(page);
        PageVo<User> userPageVo = new PageVo<>();
        BeanUtils.copyProperties(userPage, userPageVo);
        return new ResponseVo<>(userPageVo);
    }

    @PostMapping("/searchByAges")
    public ResponseVo<List<User>> searchByAges(@RequestBody List<Long> ages){
        List<User> list = userService.searchByAges(ages);
        return new ResponseVo<>(list);

    }

    @PostMapping("/searchByNames")
    public ResponseVo<List<UserVo>> searchByNames(@RequestBody List<String> names){
        List<UserVo> list = userService.selectBynames(names);
        return new ResponseVo<>(list);
    }

}

三、設(shè)置時(shí)間自動(dòng)填充

1.實(shí)體類日期類型設(shè)置

需要再實(shí)體類的日期屬性上使用@TableField(fill = FieldFill.INSERT)

FiledFill為枚舉類型

public enum FieldFill {
    /**
     * 默認(rèn)不處理
     */
    DEFAULT,
    /**
     * 插入時(shí)填充字段
     */
    INSERT,
    /**
     * 更新時(shí)填充字段
     */
    UPDATE,
    /**
     * 插入和更新時(shí)填充字段
     */
    INSERT_UPDATE
}

實(shí)體類:

    @TableField(value = "create_time", fill = FieldFill.INSERT)
    //后端傳給前端的時(shí)間格式
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //前端傳給后端的時(shí)間格式
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonAlias("create_time")
    private Date createTime;
    @JsonAlias("update_time")
    @TableField(value = "update_time" ,fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

2.自定義元對(duì)象處理器

實(shí)現(xiàn) MetaObjectHandler接口

package com.zhuang.mp.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.Date;

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推薦使用)
        this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); // 起始版本 3.3.0(推薦使用)
//        // 或者
//        this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推薦)
//        // 或者
//       this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 該方法有bug)
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start update fill ....");
        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推薦)
//        // 或者
//        this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推薦)
//        // 或者
//        this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 該方法有bug)
    }
}

四、分頁(yè)查詢

1.配置類中創(chuàng)建bean

ackage com.zhuang.mp.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyBatisPlusConfig {
 
   //分頁(yè)查詢
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //添加分頁(yè)插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

2.調(diào)用分頁(yè)查詢的方法

    @Resource
    private UserMapper userMapper;
    
    Page<User> userPage = userMapper.selectPage(page, null);

五、多對(duì)一映射、一對(duì)多映射

舉例: 一個(gè)老師有多名學(xué)生是一對(duì)多關(guān)系,而一個(gè)學(xué)生只能有一個(gè)老師是多對(duì)一關(guān)系

1.數(shù)據(jù)庫(kù)表設(shè)計(jì)

設(shè)計(jì)studen和teacher表, 兩個(gè)表中的字段命名需要不一樣,否則在映射過(guò)程中會(huì)有問(wèn)題。

1、student表

java實(shí)體類:包含老師屬性

package com.zhuang.mp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import lombok.Data;

import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author mrzhuang
 * @since 2022-12-21
 */
@ApiModel(value = "Student對(duì)象", description = "")
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Student implements Serializable {

    private static final long serialVersionUID = 1L;
    
    @TableId(type = IdType.AUTO)
    private Integer sid;

    @TableField(value = "s_name")
    private String studentName;

    private Integer tid;

    @TableField(exist = false)
    private Teacher teacher;

}

2、teacher表:

java實(shí)體類:

package com.zhuang.mp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author mrzhuang
 * @since 2022-12-21
 */
@ApiModel(value = "Teacher對(duì)象", description = "教師")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class Teacher implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("老師id")
    @TableId(value = "t_id", type = IdType.AUTO)
    private Integer tid;

    @ApiModelProperty("老師姓名")
    @TableField(value = "t_name")
    private String teacherName;

    @ApiModelProperty("學(xué)生集合")
    @TableField(exist = false)
    private List<Student> studentList;

}

2.多對(duì)一映射:association

StudentMapper.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.zhuang.mp.mapper.StudentMapper">

    <resultMap id="stuResultMap" type="Student">
        <id property="sid" column="s_id"/>
        <result property="studentName" column="s_name"/>
        <result property="tid" column="t_id"/>
        <association property="teacher" javaType="teacher">
            <id property="tid" column="t_id"/>
            <result property="teacherName" column="t_name"/>
        </association>
    </resultMap>
    <select id="selectByMap" resultMap="stuResultMap">
        select * from student s left join teacher t on s.t_id = t.t_id

    </select>
</mapper>

StudentMapper類:

package com.zhuang.mp.mapper;

import com.zhuang.mp.entity.Student;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author mrzhuang
 * @since 2022-12-21
 */
public interface StudentMapper extends BaseMapper<Student> {

       /**
     * 查詢所有學(xué)生
     * @return /
     */
    List<Student> selectByMap();
}

StudentController:

package com.zhuang.mp.controller;

import com.zhuang.mp.entity.Student;
import com.zhuang.mp.service.IStudentService;
import com.zhuang.mp.vo.ResponseVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author mrzhuang
 * @since 2022-12-21
 */
@RestController
@RequestMapping("/mp/student")
public class StudentController {

    @Resource
    IStudentService studentService;

    @GetMapping("/selectByMap")
    public ResponseVo<List<Student>> selsectByMap(){
        /**
         * 查詢所有學(xué)生
         */
        List<Student> students = studentService.selectByMap();
        return new ResponseVo<>(students);
    }

}

結(jié)果:

3.一對(duì)多映射:collection

TeacherMapper.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.zhuang.mp.mapper.TeacherMapper">

    <resultMap id="techResultMap" type="teacher">
        <id property="tid" column="t_id"/>
        <result property="teacherName" column="t_name"/>
        <collection property="studentList" ofType="student">
            <id property="sid" column="s_id"/>
            <result property="studentName" column="s_name"/>
            <result property="tid" column="t_id"/>
        </collection>
    </resultMap>

    <select id="selectByMap" resultMap="techResultMap">
        select * from teacher t right join student s on s.t_id = t.t_id
    </select>
    
</mapper>

TeacherMapper類:

package com.zhuang.mp.mapper;

import com.zhuang.mp.entity.Teacher;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author mrzhuang
 * @since 2022-12-21
 */
public interface TeacherMapper extends BaseMapper<Teacher> {

    /**
     * 查詢?nèi)坷蠋?
     * @return
     */
    List<Teacher> selectByMap();
}

TeacherController:

package com.zhuang.mp.controller;

import com.zhuang.mp.entity.Teacher;
import com.zhuang.mp.service.ITeacherService;
import com.zhuang.mp.vo.ResponseVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author mrzhuang
 * @since 2022-12-21
 */
@Api(tags = "教師接口")
@RestController
@RequestMapping("/mp/teacher")
public class TeacherController {
    @Resource
    ITeacherService teacherService;

    @ApiOperation("獲得全部的老師")
    @GetMapping("searchAll")
    public ResponseVo<List<Teacher>> searchAll(){
        List<Teacher> teachers = teacherService.searchAll();
        return new ResponseVo<>(teachers);
    }

    @ApiOperation("一對(duì)一多映射")
    @GetMapping("/selectByMap")
    public ResponseVo<List<Teacher>> selectByMap(){
        List<Teacher> teachers = teacherService.selectByMap();
        return new ResponseVo<>(teachers);
    }

}

結(jié)果:

六、代碼生成器

1.maven依賴

        <!--逆向代碼生成模版-->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

2.代碼編寫

package com.zhuang.generator;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

/**
 * @program: mp
 * @description: 逆向代碼生成器
 * @author: mrzhuang
 * @create: 2022-12-17 20:56
 **/
public class CodeGenerator {

    public static void main(String[] args) {
        String url = "jdbc:mysql://1.13.152.218:3306/mp?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
        String username = "root";
        String password = "zhuang123";
        String author = "mrzhuang";
        String outputDir = "/Users/mrzhuang/Downloads/mp/generator";
        String parent = "com.zhuang";
        String moduleName = "mp";
        String xmlPath = "/Users/mrzhuang/Downloads/mp/generator";
        //String tablename = "user";
        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author(author) // 設(shè)置作者
                            .enableSwagger() // 開(kāi)啟 swagger 模式
                            .fileOverride() // 覆蓋已生成文件
                            .outputDir(outputDir); // 指定輸出目錄
                })
                .packageConfig(builder -> {
                    builder.parent(parent) // 設(shè)置父包名
                            .moduleName(moduleName) // 設(shè)置父包模塊名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, xmlPath)); // 設(shè)置mapperXml生成路徑
                })
                .strategyConfig(builder -> {
                    builder.addInclude("teacher").addInclude("student"); // 設(shè)置需要生成的表名
    //                        .addTablePrefix("t_", "c_"); // 設(shè)置過(guò)濾表前綴
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默認(rèn)的是Velocity引擎模板
                .execute();
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis中一對(duì)一關(guān)系association標(biāo)簽的使用

    mybatis中一對(duì)一關(guān)系association標(biāo)簽的使用

    這篇文章主要介紹了mybatis中一對(duì)一關(guān)系association標(biāo)簽的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring?Cloud?中自定義外部化擴(kuò)展機(jī)制原理及實(shí)戰(zhàn)記錄

    Spring?Cloud?中自定義外部化擴(kuò)展機(jī)制原理及實(shí)戰(zhàn)記錄

    這篇文章主要介紹了Spring?Cloud?中自定義外部化擴(kuò)展機(jī)制原理及實(shí)戰(zhàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 線程局部變量的實(shí)現(xiàn)?ThreadLocal使用及場(chǎng)景介紹

    線程局部變量的實(shí)現(xiàn)?ThreadLocal使用及場(chǎng)景介紹

    這篇文章主要為大家介紹了線程局部變量的實(shí)現(xiàn)?ThreadLocal使用及場(chǎng)景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Springboot中如何使用Jackson

    Springboot中如何使用Jackson

    這篇文章主要介紹了Springboot中如何使用Jackson,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • Spring AOP源碼深入分析

    Spring AOP源碼深入分析

    這篇文章主要介紹了Spring AOP源碼,AOP(Aspect Orient Programming),直譯過(guò)來(lái)就是 面向切面編程,AOP 是一種編程思想,是面向?qū)ο缶幊蹋∣OP)的一種補(bǔ)充
    2023-01-01
  • SpringBoot Redis緩存數(shù)據(jù)實(shí)現(xiàn)解析

    SpringBoot Redis緩存數(shù)據(jù)實(shí)現(xiàn)解析

    這篇文章主要介紹了SpringBoot Redis緩存數(shù)據(jù)實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • springMVC框架下JQuery傳遞并解析Json數(shù)據(jù)

    springMVC框架下JQuery傳遞并解析Json數(shù)據(jù)

    json作為一種輕量級(jí)的數(shù)據(jù)交換格式,在前后臺(tái)數(shù)據(jù)交換中占據(jù)著非常重要的地位,這篇文章主要介紹了springMVC框架下JQuery傳遞并解析Json數(shù)據(jù),有興趣的可以了解一下。
    2017-01-01
  • 一文帶你了解SpringBoot的停機(jī)方式

    一文帶你了解SpringBoot的停機(jī)方式

    停機(jī)簡(jiǎn)單的說(shuō),就是向應(yīng)用進(jìn)程發(fā)出停止指令之后,能保證正在執(zhí)行的業(yè)務(wù)操作不受影響,直到操作運(yùn)行完畢之后再停止服務(wù)。本文就來(lái)和大家聊聊Springboot的停機(jī)方式與停機(jī)處理
    2023-02-02
  • SpringBoot?如何將項(xiàng)目打包成?jar?包

    SpringBoot?如何將項(xiàng)目打包成?jar?包

    這篇文章主要介紹了SpringBoot如何將項(xiàng)目打包成jar包,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Spring?Cloud?Gateway整合sentinel?實(shí)現(xiàn)流控熔斷的問(wèn)題

    Spring?Cloud?Gateway整合sentinel?實(shí)現(xiàn)流控熔斷的問(wèn)題

    本文給大家介紹下?spring?cloud?gateway?如何整合?sentinel實(shí)現(xiàn)流控熔斷,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友一起看看吧
    2022-02-02

最新評(píng)論