整合MybatisPlus
1.导入依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> 8.0 . 25 </version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version> 2.5 . 4 </version> </dependency> <!-- Mybatis Plus依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version> 3.4 . 1 </version> </dependency> |
2.在配置文件中添加数据库连接和mybatisplus设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | spring.datasource.driver- class -name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql: //地址:端口号/数据库名称?relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8&useSSL=false spring.datasource.username=账号 spring.datasource.password=密码 #mybaties-plus配置 #mapper文件位置 mybatis-plus.mapper-locations=classpath*:/mybatis/*.xml #实体别名配置 mybatis-plus.type-aliases- package =com.example.mybatisplus.*.entity #驼峰命名映射 mybatis-plus.configuration.map-underscore-to-camel- case = true #关闭二级缓存 mybatis-plus.configuration.cache-enabled= false #数据库类型 mybatis-plus.global-config.db-config.db-type=mysql #主键生成策略 mybatis-plus.global-config.db-config.id-type=auto #表名下划线命名默认 true mybatis-plus.global-config.db-config.table-underline= true #表前缀 mybatis-plus.global-config.db-config.table-prefix=t_ #逻辑已删除值(默认为 Y) mybatis-plus.global-config.db-config.logic-delete-value= 1 #逻辑未删除值(默认为 N) mybatis-plus.global-config.db-config.ogic-not-delete-value= 0 #逻辑删除字段(实体属性名) 需要在对应表字段上添加 @TableLogic mybatis-plus.global-config.db-config.logic-delete-field=is_deleted |
3.在主启动类中添加mapper的扫描
1 | @MapperScan ({ "com.example.mybatisplus.mapper" }) |
4.配置config文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | @Configuration public class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor()); return mybatisPlusInterceptor; } @Bean public PaginationInnerInterceptor paginationInnerInterceptor() { PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(); paginationInterceptor.setOverflow( true ); return paginationInterceptor; } } |
代码生成器
1.导入依赖
1 2 3 4 5 6 7 8 9 10 11 12 | <!-- mybatis plus 代码生成器依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version> 3.4 . 1 </version> </dependency> <!-- 模板引擎 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version> 2.0 </version> </dependency> |
2.编写生成规则
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | public class MysqlGenerator { public static void main(String[] args) { // 1、创建代码生成器 AutoGenerator mpg = new AutoGenerator(); // 2、全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty( "user.dir" ); gc.setOutputDir(projectPath + "/src" ); gc.setAuthor( "mysql gen" ); //生成后是否打开资源管理器 gc.setOpen( false ); //重新生成时文件是否覆盖 gc.setFileOverride( false ); //去掉Service接口的首字母I gc.setServiceName( "%sService" ); //主键策略 gc.setIdType(IdType.AUTO); //定义生成的实体类中日期类型 gc.setDateType(DateType.ONLY_DATE); //开启Swagger2模式 gc.setSwagger2( true ); mpg.setGlobalConfig(gc); // 3、数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl( "jdbc:mysql://数据库地址:端口号/数据库名称?relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8&useSSL=false" ); dsc.setDriverName( "com.mysql.cj.jdbc.Driver" ); dsc.setUsername( "账号" ); dsc.setPassword( "密码" ); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 4、包配置 PackageConfig pc = new PackageConfig(); pc.setModuleName( "busi" ); pc.setParent( "com.hj" ); pc.setController( "controller" ); pc.setEntity( "entity" ); pc.setService( "service" ); pc.setMapper( "mapper" ); mpg.setPackageInfo(pc); // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude( 数据库中的表名 ); //设置要映射的表名 //数据库表映射到实体的命名策略 strategy.setNaming(NamingStrategy.underline_to_camel); //设置表前缀不生成 strategy.setTablePrefix( "t_" ); //数据库表字段映射到实体的命名策略 strategy.setColumnNaming(NamingStrategy.underline_to_camel); // lombok 模型 //@Accessors(chain = true) setter链式操作 strategy.setEntityLombokModel( true ); //restful api风格控制器 strategy.setRestControllerStyle( true ); //url中驼峰转连字符 strategy.setControllerMappingHyphenStyle( true ); mpg.setStrategy(strategy); // 6、执行 mpg.execute(); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理