开发基础
开发基础笔记
mybatis-plus通用的service方法
通过jenkins配置前后端自动打包及发布
mybatis-plus实现分页的方式
Java极客技术公众号PDF
狂神说SpringBoot
Hashids java 版使用
SpringBoot
1、Web快速开发
2、结果集的封装
3、集成MyBatis实现数据库操作
4、Springboot @Validated参数校验
5、SpringBoot全局异常处理
6、拦截器HandlerInterceptor
7、集成Swagger实现API自动生成
8、集成knife4j实现API自动生成
9、Springboot集成MyBatis-Plus快速入门
10、springboot自定义注解及AOP切面使用
11、使用Shiro实现登陆和权限认证,基于MyBatis
12、集成SpringSecurity实现授权认证
13、SpringBoot集成EasyExcel实现数据导入与导出
14、Spring Task定时任务的实现
15、Quartz快速上手与实践
16、如何用代码实现Spring IOC
17、SpringBoot集成JWT,实现接口的鉴权交互
SpringCloud
Nacos作为服务注册中心
seata1.6.1 结合springcloud实现分布锁的技术笔记
一些技术博客推荐
前端面试相关
看这一篇就够了
java.util包常用的类和接口
CountDownLatch介绍与使用
Common-lang3使用入门
Hutool简单使用入门
lombok 介绍及基本使用方法
git项目统计成员代码行数和提交的次数
mysql 逗号分隔的数据 like查询
使用sonar进行代码质量检查
线上使用jmeter进行压测的时候,使用Arthas诊断工具排查响应慢的接口
php结合phpstudy8、vscode开启xdebug进行代码调试
node-red使用入门
本文档使用 MrDoc 发布
-
+
首页
9、Springboot集成MyBatis-Plus快速入门
## **MyBatis-Plus** 介绍 MyBatis-Plus(简写 MP)是 MyBatis 的增强工具,官方宣称 MP 和 MyBatis 的关系就好像魂斗罗中的 1P 和 2P,可谓好基友,天下走。  ### 简单使用 新建数据库部分见首页说明 首先新建一个SpringBoot的项目, 在新建的springboot的项目基础上,导入坐标: ```xml <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- mybatis-plus --> <!-- mybatis-plus 是自己开发,并非官方的! --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> ``` 更新application.properties文件 ```properties server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver mybatis.mapper-locations[0]=classpath:mapper/*.xml mybatis.mapper-locations[1]=classpath*:com/**/mapper/*.xml ``` 增加日志查看 ```properties logging.level.root=warn logging.level.com.mmno.springboot.mapper=trace logging.pattern.console=%p%m%n ``` 编写实体类domain/User.java ```java @Data @EqualsAndHashCode(callSuper = false) @TableName("user") public class User { /** * 主键 */ private Long id; /** * 姓名 */ @TableField(value = "username", condition = SqlCondition.LIKE) private String username; /** * 年龄 */ @TableField(condition = "%s<#{%s}") private Integer age; /** * 邮箱 */ private String email; /** * 创建时间 */ private Long createTime; /* * 备注(不与数据库字段对应) # transient 不参与序列化 */ @TableField(exist = false) private String remark; } ``` 编写dao接口mapper/UserMapper.java ```java public interface UserMapper extends BaseMapper<User> { } ``` 在项目的启动类上面添加注解进行接口扫描: ```java @MapperScan("com.mmno.springboot.mapper") ``` 编写测试类试下效果 ```java @RunWith(SpringRunner.class) @SpringBootTest public class SimpleTest { @Autowired private UserMapper userMapper; @Test public void select() { List<User> list = userMapper.selectList(null); Assert.assertEquals(5, list.size()); list.forEach(System.out::println); } } ``` 运行正常后,可以在终端显示出查询出来的5条记录。 插入一条新记录 ```java @Test public void insertTest() { User user = new User(); user.setUsername("小灰"); user.setAge(20); user.setEmail("1980757771@qq.com"); user.setBirthday(new Date()); int rows = userMapper.insert(user); System.out.println("影响记录数:" + rows); } ``` ### AutoGenerator 的使用 AutoGenerator 是 MyBatis-Plus 推出的代码生成器,可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,比 Mybatis Generator 更强大,开发效率更高。 是的,连Controller模块都给你生成好了。 ### 添加坐标 ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <!-- 添加模板引擎依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,这里使用默认的 Velocity 引擎--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency> ``` 和mybatis generator不同的是,mybatis-plus是直接把所有的配置信息写到类里,直接执行类方法生成相关的文件。 在项目的test目录下,新建一个`CodeGenerator` 类 。 ```java 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() { // 1、创建代码生成器 AutoGenerator mpg = new AutoGenerator(); // 2、全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); // 此处建议写项目/src/main/java源代码的绝对路径 gc.setOutputDir(projectPath + "/src/main/java"); // 生成注释时的作者 gc.setAuthor("seqier"); //生成后是否打开资源管理器 gc.setOpen(false); gc.setFileOverride(false); //重新生成时文件是否覆盖 gc.setServiceName("%sService"); //去掉Service接口的首字母I gc.setIdType(IdType.ID_WORKER_STR); //主键策略 gc.setDateType(DateType.ONLY_DATE); //定义生成的实体类中日期类型 // 如果开启Swagger,要引入相应的包 gc.setSwagger2(true); //开启Swagger2模式 mpg.setGlobalConfig(gc); // 3、数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://10.168.1.101:3306/mybatis?serverTimezone=GMT%2B8"); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("123456"); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 4、包配置 PackageConfig pc = new PackageConfig(); // 此处要注意:parent + moduleName 为包的名字,在这个包下,创建对应的controller... pc.setParent("com.mmno"); pc.setModuleName("eduservice"); //模块名 pc.setController("controller"); pc.setEntity("entity"); pc.setService("service"); pc.setMapper("mapper"); mpg.setPackageInfo(pc); // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); // 数据库中表的名字,表示要对哪些表进行自动生成controller service、mapper... strategy.setInclude("user","account"); // 数据库表映射到实体的命名策略,驼峰命名法 strategy.setNaming(NamingStrategy.underline_to_camel); // 生成实体时去掉表前缀,比如edu_course,如果不加下面这句,生成的实体类名字就是:EduCourse strategy.setTablePrefix(""); //生成实体时去掉表前缀 // 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(); } } ``` 最后生成的目录如下: 
superadmin
2023年11月3日 17:20
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码