UserServiceImpl
/** * @Desc: * @Author: 公众号:知否技术 * @date: 下午9:57 2022/5/11 */@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {}复制代码2.测试

文章插图
我们发现该 IService 接口封装了一些常用的方法 , 极大地提高了我们的开发效率 。
7. 常用注解1.@TableId
MybatisPlus 会默认将实体类中的 id 作为主键 。
@TableId 表示 id 的生成策略 , 常用的有两种:
(1) 基于数据库的自增策略

文章插图

文章插图
(2) 使用雪花算法策略随机生成

文章插图
2.@TableName
如果实体类和数据库的表名不一致 , 可以使用这个注解做映射
例如:

文章插图
3.@TableField
当表属性和实体类中属性名不一致时 , 可以使用这个注解做映射:

文章插图
8. 分页MybatisPlus 内部封装了分页插件 , 只用简单配置一下就能实现分页功能 。
1.配置类
/** * @Desc: * @Author: 公众号:知否技术 * @date: 下午9:31 2022/5/11 */@Configuration@MapperScan("com.zhifou.mapper")public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(newPaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}复制代码2.测试@Testvoid testMybatisPlus() {int current = 1;int size = 10;Page<User> userPage = new Page<>(current, size);//获取分页数据List<User> list = userPage.getRecords();list.forEach(user->{System.out.println(user);});Page<User> page = userMapper.selectPage(userPage, null);System.out.println("当前页:" + page.getCurrent());System.out.println("每页条数:" + page.getSize());System.out.println("总记录数:" + page.getTotal());System.out.println("总页数:" + page.getPages());}复制代码9. 代码生成器MybatisPlus 可以帮助我们自动生成 controller、service、dao、model、mapper.xml 等文件 , 极大地提高了我们的开发效率 。1.引入依赖
<!-- 代码生成器 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId></dependency>复制代码2.代码生成器工具类public class CodeGenerator {public static void main(String[] args) {// 连接数据库FastAutoGenerator.create("jdbc:mysql://localhost:3306/ssm?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC", "root", "123456").globalConfig(builder -> {builder.author("知否技术") // 设置作者.fileOverride() // 覆盖已生成文件// 设置日期时间.dateType(DateType.ONLY_DATE).outputDir("D:\WorkSpace\idea\mybatisplus_demo\src\main\java"); // 指定输出目录}).packageConfig(builder -> {builder.parent("com.zhifou") // 设置父包名.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\WorkSpace\idea\mybatisplus_demo\src\main\resources\mapper")); // 设置mapperXml生成路径}).strategyConfig(builder -> {builder.addInclude("t_user") // 设置需要生成的表名.addTablePrefix("t_"); // 设置过滤表前// 新增数据 , 自动为创建时间赋值IFill createFill = new Column("created_date", FieldFill.INSERT);IFill updateFill = new Column("updated_date", FieldFill.UPDATE);builder.entityBuilder()// 设置id类型.idType(IdType.ASSIGN_ID)// 开启 Lombok.enableLombok()// 开启连续设置模式.enableChainModel()// 驼峰命名模式.naming(NamingStrategy.underline_to_camel).columnNaming(NamingStrategy.underline_to_camel)// 自动为创建时间、修改时间赋值.addTableFills(createFill).addTableFills(updateFill)// 逻辑删除字段.logicDeleteColumnName("is_deleted");// Restful 风格builder.controllerBuilder().enableRestStyle();// 去除 Service 前缀的 Ibuilder.serviceBuilder().formatServiceFileName("%sService");// mapper 设置builder.mapperBuilder().enableBaseResultMap().enableBaseColumnList();})// 固定.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板 , 默认的是Velocity引擎模板.execute();}}复制代码
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 思想品德教育的最终目的是培养学生良好的?从整体发展来看,中学生品德发展的关键时期大致在
- 描写山水的优美诗句小学?描写山水的优美诗句三年级
- 学困生原因分析及转化措施?对学困生转化有哪些策略
- 华侨大学|反转大瓜?00后面试被拒后,直接将公司举报到歇业,引发爆议!
- 想学画画 但没有基础?如果学画画没有基础要学多久
- 教学要受学生心理发展水平和认知特点的制约?有人认为教师不学心理学也能取得工作成绩_1
- 生科医学|研究发现睡前玩手机伤眼又折寿引网友热议:权威报告揭秘原因
- 我的教学故事教学随笔?我的教学故事100篇小学语文老师
- 环境设计是学什么的?
- 邯郸学步的故事寓意是什么?
