spring boot 集成 mybatis plus

  • 时间:2020-04-24 21:06 作者:yoomaz 来源: 阅读:590
  • 扫一扫,手机访问
摘要:前言mybatis plus 是一款对 mybatis 的加强工具,通过封装通用的增删改查,简化了 Mapper 的编写,自动生成代码工具生成 dao,service,controller 层的代码,非常方便集成创立一个 maven 项目,加入如下常用的依赖: dependency

前言

mybatis plus 是一款对 mybatis 的加强工具,通过封装通用的增删改查,简化了 Mapper 的编写,自动生成代码工具生成 dao,service,controller 层的代码,非常方便

集成

创立一个 maven 项目,加入如下常用的依赖:

        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.0.1</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.1.6</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>1.2.51</version>        </dependency>        <!--mysql-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <scope>runtime</scope>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <version>1.18.2</version>            <scope>provided</scope>        </dependency>        <!-- 模板引擎 -->        <dependency>            <groupId>org.apache.velocity</groupId>            <artifactId>velocity-engine-core</artifactId>            <version>2.0</version>        </dependency>        <!-- 模板引擎,需要指定 mpg.setTemplateEngine(new FreemarkerTemplateEngine()); -->        <dependency>            <groupId>org.freemarker</groupId>            <artifactId>freemarker</artifactId>            <version>2.3.23</version>        </dependency>

创立配置生成工具类,生成相关代码:

public class MpGenerator {    public static void main(String[] args) {        String dbUrl = "jdbc:mysql://localhost:3306/eshop?useSSL=false";        DataSourceConfig dataSourceConfig = new DataSourceConfig();        dataSourceConfig.setDbType(DbType.MYSQL)                .setUrl(dbUrl)                .setUsername("root")                .setPassword("rootroot")                .setDriverName("com.mysql.jdbc.Driver");        StrategyConfig strategyConfig = new StrategyConfig();        strategyConfig.setCapitalMode(true) // 能否大写命名                .setEntityLombokModel(true)                .entityTableFieldAnnotationEnable(true) // 能否可以 @ableField 注解                .setTablePrefix("t_")                .setNaming(NamingStrategy.underline_to_camel) // 表名                .setColumnNaming(NamingStrategy.underline_to_camel); // 字段名        GlobalConfig config = new GlobalConfig();        config.setActiveRecord(true)                .setEnableCache(false)                .setBaseColumnList(true)                .setBaseResultMap(true)                .setAuthor("yooma")                // 这里就直接输出到项目里面,不用再复制进来                .setOutputDir("eshop\\src\\main\\java")                .setFileOverride(true)                .setServiceName("%sService");        new AutoGenerator().setGlobalConfig(config)                .setDataSource(dataSourceConfig)                .setStrategy(strategyConfig)                .setPackageInfo(                        new PackageConfig()                                .setParent("com.yooma.eshop")                                .setController("controller")                                .setEntity("model")                ).execute();    }}

在 application.yml 里配置项目信息:

server:  port: 8081spring:  datasource:    # 使用druid数据源,替换DBCP和C3P0 。 druid可查看https://www.cnblogs.com/soundcode/p/6485375.html    type: com.alibaba.druid.pool.DruidDataSource    # 旧的版本需要使用 com.mysql.jdbc.Driver    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://localhost:3306/eshop?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&verifyServerCertificate=false&useSSL=false&allowPublicKeyRetrieval=true    username: root    password: rootroot  jackson:    # 全局jackson配置    default-property-inclusion: non_null# Logger Configlogging:  config: classpath:logback.xmlmybatis-plus:  # 假如是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml  # 假如是放在resource目录 classpath:/mapper/*Mapper.xml  mapper-locations: classpath:/mapper/*Mapper.xml  # 实体扫描,多个package用逗号或者者分号分隔  typeAliasesPackage: com.yooma.eshop.model  global-config:    # 主键类型  0:"数据库ID自增", 1:"客户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";    id-type: 0

对日志的配置:

在 applicaiton.yml 里加上:

# Logger Configlogging:  config: classpath:logback.xml

而后创立 logback.xml 文件,可以打印出来 mybatis 执行的sql语句等:

<?xml version="1.0" encoding="UTF-8"?><!-- 从高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL --><!-- 日志输出规则  根据当前ROOT 级别,日志输出时,级别高于root默认的级别时  会输出 --><!-- 以下  每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,仍然出现低级别的日志信息,通过filter 过滤只记录本级别的日志--><!-- 属性形容 scan:性设置为true时,配置文件假如发生改变,将会被重新加载,默认值为true scanPeriod:设置监测配置文件能否有修改的时间间隔,假如没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。    debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --><configuration scan="true" scanPeriod="60 seconds" debug="false">    <!-- 定义日志文件 输入位置 -->    <property name="log_dir" value="logs/ev_cmdb"/>    <!-- 日志最大的历史 30天 -->    <property name="maxHistory" value="30"/>    <!-- ConsoleAppender 控制台输出日志 -->    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">        <!-- 对日志进行格式化 -->        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>        </encoder>    </appender>    <!-- ERROR级别日志 -->    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其余文件 RollingFileAppender-->    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">        <!-- 过滤器,只记录WARN级别的日志 -->        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>ERROR</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责出发滚动 -->        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!--日志输出位置  可相对、和绝对路径 -->            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/error-log.log</fileNamePattern>            <!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6,            则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创立的目录也会被删除-->            <maxHistory>${maxHistory}</maxHistory>        </rollingPolicy>        <!-- 按照固定窗口模式生成日志文件,当文件大于20MB时,生成新的日志文件。窗口大小是1到3,当保存了3个归档文件后,将覆盖最早的日志。        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">          <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/.log.zip</fileNamePattern>          <minIndex>1</minIndex>          <maxIndex>3</maxIndex>        </rollingPolicy>   -->        <!-- 查看当前活动文件的大小,假如超过指定大小会告知RollingFileAppender 触发当前活动文件滚动        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">            <maxFileSize>5MB</maxFileSize>        </triggeringPolicy>   -->        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>        </encoder>    </appender>    <!-- WARN级别日志 appender -->    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">        <!-- 过滤器,只记录WARN级别的日志 -->        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>WARN</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!-- 按天回滚 daily -->            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/warn-log.log            </fileNamePattern>            <!-- 日志最大的历史 60天 -->            <maxHistory>${maxHistory}</maxHistory>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>        </encoder>    </appender>    <!-- INFO级别日志 appender -->    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">        <!-- 过滤器,只记录INFO级别的日志 -->        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>INFO</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!-- 按天回滚 daily -->            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/info-log.log            </fileNamePattern>            <!-- 日志最大的历史 60天 -->            <maxHistory>${maxHistory}</maxHistory>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>        </encoder>    </appender>    <!-- DEBUG级别日志 appender -->    <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">        <!-- 过滤器,只记录DEBUG级别的日志 -->        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>DEBUG</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!-- 按天回滚 daily -->            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/debug-log.log            </fileNamePattern>            <!-- 日志最大的历史 60天 -->            <maxHistory>${maxHistory}</maxHistory>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>        </encoder>    </appender>    <!-- TRACE级别日志 appender -->    <appender name="TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <!-- 过滤器,只记录ERROR级别的日志 -->        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>TRACE</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!-- 按天回滚 daily -->            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/trace-log.log            </fileNamePattern>            <!-- 日志最大的历史 60天 -->            <maxHistory>${maxHistory}</maxHistory>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>        </encoder>    </appender>    <!--<logger name="java.sql.PreparedStatement" value="DEBUG" />-->    <!--<logger name="java.sql.Connection" value="DEBUG" />-->    <!--<logger name="java.sql.Statement" value="DEBUG" />-->    <!--<logger name="com.ibatis" value="DEBUG" />-->    <!--<logger name="com.ibatis.common.jdbc.SimpleDataSource" value="DEBUG" />-->    <!--<logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG"/>-->    <!--<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" />-->    <logger name="com.yooma.eshop.mapper" level="DEBUG">        <appender-ref ref="STDOUT"/>    </logger>    <!-- root级别   DEBUG -->    <root level="INFO">        <!-- 控制台输出 -->        <appender-ref ref="STDOUT"/>        <!-- 文件输出 -->        <appender-ref ref="ERROR"/>        <appender-ref ref="INFO"/>        <appender-ref ref="WARN"/>        <appender-ref ref="DEBUG"/>        <appender-ref ref="TRACE"/>    </root></configuration>
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部