• 整合Mybatisplus


    1、依赖

    父工程进行版本控制

    <?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.zjazn</groupId>
        <artifactId>gopoint</artifactId>
        <version>1.0-SNAPSHOT</version>
        <parent>
            <artifactId>spring-boot-starter-parent</artifactId>
            <groupId>org.springframework.boot</groupId>
            <version>2.1.3.RELEASE</version>
        </parent>
        <modules>
            <module>point-service</module>
            <module>point-common</module>
        </modules>
        <packaging>pom</packaging>
    
    
    
        <!--统一管理jar包版本-->
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
    
       <dependencyManagement>
           <!--子模块继承之后,提供作用:锁定版本+子module不用groupId和version-->
           <dependencies>
                
              ...
    
               <!--mybatis-plus-->
               <dependency>
                   <groupId>mysql</groupId>
                   <artifactId>mysql-connector-java</artifactId>
                   <version>5.1.47</version>
               </dependency>
               <dependency>
                   <groupId>com.baomidou</groupId>
                   <artifactId>mybatis-plus-boot-starter</artifactId>
                   <version>3.4.0</version>
               </dependency>
               <dependency>
                   <groupId>com.baomidou</groupId>
                   <artifactId>mybatis-plus-generator</artifactId>
                   <version>3.4.0</version>
               </dependency>
               <dependency>
                   <groupId>org.apache.velocity</groupId>
                   <artifactId>velocity-engine-core</artifactId>
                   <version>2.0</version>
               </dependency>
    
           </dependencies>
       </dependencyManagement>
    
    
    
    
    </project>

    子模块

    <!--mybatis-plus依赖-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
            </dependency>
            <!-- 模板引擎 -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
            </dependency>

    2、代码生成器

    import com.baomidou.mybatisplus.annotation.DbType;
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    import com.baomidou.mybatisplus.generator.config.GlobalConfig;
    import com.baomidou.mybatisplus.generator.config.PackageConfig;
    import com.baomidou.mybatisplus.generator.config.StrategyConfig;
    import com.baomidou.mybatisplus.generator.config.rules.DateType;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    import org.junit.Test;
    
    /**
     * @author
     * @since 2018/12/13
     */
    public class CodeGenerator {
    
        @Test
        public void run() {
    
            // 1、创建代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // 2、全局配置
            GlobalConfig gc = new GlobalConfig();
            String projectPath = System.getProperty("user.dir");
            //代码生成的绝对路径!!
            gc.setOutputDir("D:\\code\\i\\GoPoint\\point_service\\src\\main\\java\\");
    
            gc.setAuthor("testjava");
            gc.setOpen(false); //生成后是否打开资源管理器
            gc.setFileOverride(false); //重新生成时文件是否覆盖
    
            //UserServie
            gc.setServiceName("%sService");    //去掉Service接口的首字母I
    
            gc.setIdType(IdType.ID_WORKER_STR); //主键策略
            gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
            gc.setSwagger2(true);//开启Swagger2模式
    
            mpg.setGlobalConfig(gc);
    
            // 3、数据源配置 !!
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://数据库ip:3306/数据库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");
            dsc.setDriverName("com.mysql.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("3333");
            dsc.setDbType(DbType.MYSQL);
            mpg.setDataSource(dsc);
    
            // 4、包配置!!!
            PackageConfig pc = new PackageConfig();
            //包  com.atguigu.eduservice
            pc.setParent("com.zjazn");
            pc.setModuleName("point_service"); //模块名
    
            //包  com.atguigu.eduservice.controller
            pc.setController("controller");
            pc.setEntity("entity");
            pc.setService("service");
            pc.setMapper("mapper");
            mpg.setPackageInfo(pc);
    
            // 5、策略配置
            StrategyConfig strategy = new StrategyConfig();
    
            //哪些表要生成!!
            strategy.setInclude("point");
    
            strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
            strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
    
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
            strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
    
            strategy.setRestControllerStyle(true); //restful api风格控制器
            strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
    
            mpg.setStrategy(strategy);
    
    
            // 6、执行
            mpg.execute();
        }
    }

    生成的代码还需要一个依赖 Swagger的依赖

    <!--swagger-->
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
    </dependency>
    <!--swagger ui-->
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
    </dependency>

    3、再配置

    启动类

    @MapperScan(basePackages = {"com.zjazn.*.mapper"})


    application.yml

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://数据库ip/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false
        username: root
        password: 3333
      main:
        allow-bean-definition-overriding: true
      mvc:
        throw-exception-if-no-handler-found: true
    
    mybatis-plus:
      mapper-locations: classpath:com/zjazn/point_service/mapper/xml/*.xml

    4、使用示例

    package com.zjazn.point_service.controller;
    
    
    import com.alibaba.fastjson.JSON;
    import com.zjazn.point_service.entity.Point;
    import com.zjazn.point_service.service.PointService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * <p>
     *  前端控制器
     * </p>
     *
     * @author testjava
     * @since 2022-06-14
     */
    @RestController
    @RequestMapping("/point_service")
    public class PointController {
        @Autowired
        public PointService pointService;
        @GetMapping("/point")
        public String point() {
            Point point = pointService.getById("19060201111");
    
            return "hello,world!="+ JSON.toJSONString(point);
        }
    
    
    }
  • 相关阅读:
    无法import的原因(ImportError: No module named *****)
    Mac 安装终端软件
    MyEclipse中拷贝J2EE项目,发布到tomcat中名字一样的解决办法
    微PE工具箱 v2.1 正式版,最好用的PE工具箱
    Windows 10 v2004 (OS Build 19041.329)
    Microsoft Visual C++ 2019 14.27.28914.0[2020.06.03]
    Visual C++ 运行库合集包完整版 v20200603
    VMware-workstation-full-15.5.6-16341506官方版及密钥
    [转载]使用PRIMO组件,让你的硬盘快几倍!
    [转载]goldendict下优质词典简介及安装
  • 原文地址:https://www.cnblogs.com/zhuangjie/p/16373856.html
Copyright © 2020-2023  润新知