Mybatis-Plus依赖

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.2.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>2.1.9</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-ehcache</artifactId><version>1.0.0</version></dependency>

package com.regs.tms.common.mybatis;

数据库配置

@Configuration
public class DataSourceConfig {@Bean(name = "dataSource")@Qualifier("dataSource")@ConfigurationProperties(prefix = "spring.datasource")public DataSource primaryDataSource() {return DataSourceBuilder.create().build();}
}

Mybatis配置

package com.regs.tms.common.mybatis;

/*** mybatis配置类** @author Souler* @date 2016/8/12*/
@Configuration
@EnableTransactionManagement
@AutoConfigureAfter(DataSourceConfig.class)
@MapperScan("com.regs.tms.**.mapper")
public class MybatisPlusConfig implements TransactionManagementConfigurer {@Autowired@Qualifier("dataSource")DataSource dataSource;/*** mybatis-plus 分页插件*/@Beanpublic PaginationInterceptor paginationInterceptor() {PaginationInterceptor interceptor = new PaginationInterceptor();interceptor.setDialectType(DBType.MYSQL.getDb());return interceptor;}/*** mybatis-plus 详细配置** @return*/@Beanpublic SqlSessionFactory sqlSessionFactory() {MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();mybatisPlus.setDataSource(dataSource);mybatisPlus.setTypeAliasesPackage("com.regs.tms.**.entity");mybatisPlus.setPlugins(new Interceptor[]{paginationInterceptor()});mybatisPlus.setVfs(SpringBootVFS.class);// MP 全局配置,更多内容进入类看注释GlobalConfiguration globalConfig = new GlobalConfiguration();globalConfig.setDbType(DBType.MYSQL.getDb());globalConfig.setDbColumnUnderline(true);globalConfig.setCapitalMode(true);// ID 策略 AUTO->`0`("数据库ID自增")// INPUT->`1`(用户输入ID") ID_WORKER->`2`("全局唯一ID") UUID->`3`("全局唯一ID")globalConfig.setIdType(3);globalConfig.setRefresh(false);//设置xml热加载(禁用)// 逻辑删除globalConfig.setSqlInjector(new com.baomidou.mybatisplus.mapper.LogicSqlInjector());globalConfig.setLogicDeleteValue(DelFlagEnum.STATUS_DEL.getType());globalConfig.setLogicNotDeleteValue(DelFlagEnum.STATUS_NORMAL.getType());// 配置公共字段自动填写globalConfig.setMetaObjectHandler(new MyMetaObjectHandler());mybatisPlus.setGlobalConfig(globalConfig);// MP mybatis属性配置,更多内容进入类看注释MybatisConfiguration config = new MybatisConfiguration();// 增加MP的xml// 打包成jar时,setTypeAliasesPackage("xxx")找不到类的问题。MyBatis通过VFS来扫描config.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);config.setVfsImpl(SpringBootVFS.class);// 配置驼峰功能config.setMapUnderscoreToCamelCase(true);config.setCacheEnabled(true);// 本地调试设置日志config.setLogImpl(StdOutImpl.class);mybatisPlus.setConfiguration(config);try {// 添加XML目录ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();Resource[] resources = resolver.getResources("classpath*:mapping/**/*.xml");mybatisPlus.setMapperLocations(resources);return mybatisPlus.getObject();} catch (Exception e) {throw new RuntimeException("sqlSessionFactory init fail", e);}}/*** 事务管理,具体使用在service层加入@Transactional注解*/@Beanpublic PlatformTransactionManager annotationDrivenTransactionManager() {return new DataSourceTransactionManager(dataSource);}}

package com.regs.tms.common.mybatis;

public enum DelFlagEnum {

/** 有效的 */
STATUS_NORMAL("0", "有效的"),/** 无效的 */
STATUS_DEL("1", "无效的");DelFlagEnum(String type, String name) {this.type = type;this.name = name;
}public String type;
public String name;public String getType() {return type;
}public String getName() {return name;
}

}

自动填充字段配置

package com.regs.tms.common.mybatis;

/** 自定义填充公共 name 字段 */
public class MyMetaObjectHandler extends MetaObjectHandler {/*** 测试 user 表 name 字段为空自动填充*/public void insertFill(MetaObject metaObject) {// 更多查看源码测试用例System.out.println("*************************");System.out.println("insert fill");System.out.println("*************************");// 测试下划线Object create_time = getFieldValByName("createTime", metaObject);Object del_flag = getFieldValByName("delFlag", metaObject);Object update_time = getFieldValByName("updateTime", metaObject);if (null == update_time) {setFieldValByName("updateTime", new Date(), metaObject);// mybatis-plus版本2.0.9+}if (null == create_time) {setFieldValByName("createTime", new Date(), metaObject);// mybatis-plus版本2.0.9+}if (null == del_flag) {setFieldValByName("delFlag", DelFlagEnum.STATUS_NORMAL.getType(),metaObject);// mybatis-plus版本2.0.9+}}@Overridepublic void updateFill(MetaObject metaObject) {// 更多查看源码测试用例System.out.println("*************************");System.out.println("update fill");System.out.println("*************************");Object update_time = getFieldValByName("updateTime", metaObject);if (null == update_time) {setFieldValByName("updateTime", new Date(), metaObject);// mybatis-plus版本2.0.9+}}
}## 自动填充实体父类运用注解

package com.regs.tms.service.logic.entity;

@Datapublic class BaseMode<T> implements Serializable {private static final long serialVersionUID = 1L;/*** 创建时间*/@ApiModelProperty(value = "创建时间")@TableField(value = "create_time", fill = FieldFill.INSERT)protected Date createTime;/*** 修改时间*/@ApiModelProperty(value = "创修改时间")@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)protected Date updateTime;/*** 0-正常,1-删除*/@ApiModelProperty(value = "删除标记:0-正常,1-删除")@TableLogic@TableField(value = "del_flag", fill = FieldFill.INSERT)protected String delFlag;protected Serializable pkVal() {return null;}}

SpringBoot配置Mybatis-Plus应用相关推荐

  1. SpringBoot配置Mybatis多数据源

    SpringBoot配置Mybatis多数据源 配置多数据源可以将springboot自动装配的数据源给关闭. 1.添加pom文件,只需要添加数据源驱动和mybatis包 <dependency ...

  2. SpringBoot配置mybatis多数据源(包含单数据源)最终解决方案,带源码

    贴上我的github: https://github.com/mx342/testSpringbootMutipartDatasource.git 具体项目文件请查看github上面的项目 # tes ...

  3. SpringBoot配置Mybatis打印SQL

    两种方式,一种基于SpringBoot自动装配通过yml文件直接配置,另一种是配置在mybatis的全局配置文件中. 但是两种方式不能同时配置,在SpringBoot V1.5.9以上版本惠报错: P ...

  4. springboot配置mybatis redis缓存

    一.概述 首先来了解下mybatis 缓存,mybatis缓存分为一级缓存和二级缓存.一级缓存是默认开启的,无需其他配置操作,二级缓存则需要手动设置开启. 一级缓存原理: Mybatis的一级缓存是指 ...

  5. springboot配置mybatis逆向工程

    mybatis逆向工程很早之前有用过,但是一直没有整理使用步骤,今天来回顾下在idea下springboot中整合mybatis逆向工程的实现步骤 什么是逆向工程? 所谓mybatis逆向工程,就是m ...

  6. springboot配置mybatis

    <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-sp ...

  7. SpringBoot配置Mybatis在控制台打印sql

    mybatisconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  8. Springboot—mysql+mybatis+generator插件

    1.idea-generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOC ...

  9. springboot添加多数据源连接池并配置Mybatis

    springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018  ...

  10. SpringBoot集成Mybatis(0配置注解版)

    Mybatis初期使用比较麻烦,需要各种配置文件.实体类.dao层映射关联.还有一大推其它配置.当然Mybatis也发现了这种弊端,初期开发了generator可以根据表结构自动生成实体类.配置文件和 ...

最新文章

  1. Python基础教程:带参装饰器、生成器、迭代器、for循环迭代器、枚举
  2. python云变量_Python之变量的创建过程
  3. SQL Server数据库优化方案
  4. 使用boost模板函数实现读写锁
  5. ZTree的全选 反选 全不选 取消 清空
  6. Python的发展方向
  7. 数据3分钟丨Oracle Database 21c终于发布而22c可能直接跳过;2021 OceanBase数据库大赛开启。...
  8. 【Oracle】重置参数
  9. mysql references关键字_mysql关键字有哪些?
  10. CISCO路由器交换机简介及Packet+Tracer使用说明
  11. 【EagleEye】2020-ECCV-EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning-论文详解
  12. Oracle如何快速、大量的插入数据
  13. 关于我的专业(niit软件工程方向)
  14. 微软官方原版win7(64位/32位)旗舰版系统下载【适合所有品牌】
  15. 解决SQL适配器连接到字符集为US7ASCII的Oracle数据库的中文乱码问题
  16. 购物网站被劫持跳转返利推广网站的分析过程和解决方法
  17. 四款超好用的甘特图软件
  18. wince7下将NK.bin文件转为NK.nb0
  19. 1062 最简分数 (C++)
  20. matlab 中lsim的用法,lsim的用法

热门文章

  1. H106OJ | 第二次练习(查找)
  2. html五子棋游戏制作原理,原生JS+Canvas实现五子棋游戏
  3. 如何修改QT项目的项目名称?
  4. IPFS系列 - 体验 IPFS Docker
  5. 电脑桌面切屏的快捷键
  6. 通过QQ邮箱的SMTP服务器发送QQ邮件至163邮箱提示“发送邮件失败”的解决方案(三种可能性,不妨一试)...
  7. mysql chm 文档_最简单,最实用的数据库CHM文档生成工具——DBCHM
  8. 结合NBA主题,Niantic再寻LBS AR游戏破局之道
  9. Android工程师级别
  10. c#短信接口代码实现(发短信)