mybatis plus概述
是对Mybatis框架的二次封装和扩展 纯正血统:完全继承原生 Mybatis 的所有特性 最少依赖:仅仅依赖Mybatis以及Mybatis-Spring 性能损耗小:启动即会自动注入基本CURD ,性能无损耗,直接面向对象操作 自动热加载:Mapper对应的xml可以热加载,大大减少重启Web服务器时 - 间,提升开发效率 全局拦截:提供全表delete、update操作智能分析阻断 避免Sql注入:内置Sql注入内容剥离器,预防Sql注入攻击
在父模块pom.xml文件中锁定版本
< properties>
< mybatis-plus.version> 3.0.5</ mybatis-plus.version>
< velocity.version> 2.0</ velocity.version>
</ properties>
在子模块pom.xml文件中引入相关依赖
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
</ dependency>
< dependency>
< groupId> com.baomidou</ groupId>
< artifactId> mybatis-plus-boot-starter</ artifactId>
< version> ${mybatis-plus.version}</ version>
</ dependency>
< dependency>
< groupId> org.apache.velocity</ groupId>
< artifactId> velocity-engine-core</ artifactId>
< version> ${velocity.version}</ version>
</ dependency>
mybatis-plus 配置(yml)
server:
port: 9004
spring:
application:
name: xxxx-xxxx
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxxx?autoReconnect= true& useUnicode= true& characterEncoding= utf8& serverTimezone= GMT%2B8
username: root
password: root
mybatis-plus:
mapper-locations: classpath:com/*/mapper/xml/*.xml
global-config:
id-type: 1
db-column-underline: false
refresh-mapper: true
configuration:
map-underscore-to-camel-case: true
cache-enabled: true
lazy-loading-enabled: true
multiple-result-sets-enabled: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
代码生成器
package codeGenerate;
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;
public class CodeGenerator {
@Test
public void run ( ) {
AutoGenerator mpg = new AutoGenerator ( ) ;
GlobalConfig gc = new GlobalConfig ( ) ;
String projectPath = System. getProperty ( "user.dir" ) ;
gc. setOutputDir ( "E:\\xxx\\xxxx\\xxxx" + "/src/main/java" ) ;
gc. setAuthor ( "xxx" ) ;
gc. setOpen ( false ) ;
gc. setFileOverride ( false ) ;
gc. setServiceName ( "%sService" ) ;
gc. setIdType ( IdType. INPUT) ;
gc. setDateType ( DateType. ONLY_DATE) ;
gc. setSwagger2 ( true ) ;
mpg. setGlobalConfig ( gc) ;
DataSourceConfig dsc = new DataSourceConfig ( ) ;
dsc. setUrl ( "jdbc:mysql://localhost:3306/xxx?serverTimezone=GMT%2B8" ) ;
dsc. setDriverName ( "com.mysql.cj.jdbc.Driver" ) ;
dsc. setUsername ( "root" ) ;
dsc. setPassword ( "root" ) ;
dsc. setDbType ( DbType. MYSQL) ;
mpg. setDataSource ( dsc) ;
PackageConfig pc = new PackageConfig ( ) ;
pc. setModuleName ( "xxx" ) ;
pc. setParent ( "com.xxx" ) ;
pc. setController ( "controller" ) ;
pc. setEntity ( "entity" ) ;
pc. setService ( "service" ) ;
pc. setMapper ( "mapper" ) ;
mpg. setPackageInfo ( pc) ;
StrategyConfig strategy = new StrategyConfig ( ) ;
strategy. setInclude ( "xxx" , "xxx" , "xxx" ) ;
strategy. setNaming ( NamingStrategy. underline_to_camel) ;
strategy. setTablePrefix ( pc. getModuleName ( ) + "_" ) ;
strategy. setColumnNaming ( NamingStrategy. underline_to_camel) ;
strategy. setEntityLombokModel ( true ) ;
strategy. setRestControllerStyle ( true ) ;
strategy. setControllerMappingHyphenStyle ( true ) ;
mpg. setStrategy ( strategy) ;
mpg. execute ( ) ;
}
}