Mybatis Plus案例分析
这篇文章主要介绍了Mybatis Plus案例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis Plus案例分析文章都会有所收获,下面我们一起来看看吧。
1 初识Mybatis-Plus
MyBatis-Plus简称 MP,是一个 MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus有很多的特点支持很多的标准数据库,具体等学到相关特性的时候再去详细了解。MyBatis-Plus的官方文档:https://baomidou.com/
关于MyBatis-Plus的框架结构,也就是框架的底层实现官方文档给出如下试图,简单总结来就是:扫描实体类,通过反射抽取实体类中的属性并分析其与表中字段之间的关系,最后调用MyBatis-Plus提供的一堆方法生成SQL语句注入到MyBatis的容器中,从而实现不同的增删改查功能
2 入门案例
前期环境准备
创建数据库表并插入数据
CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主键ID', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年龄', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4@baomidou.com'), (5, 'Billie', 24, 'test5@baomidou.com');
使用Spring Initializr快速创建一个SpringBoot工程
删除选中的不必要文件以及文件夹
pom文件导入相关依赖
<!--mybatis-的场景启动器--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version></dependency><!--lombok简化实体类开发,如果之前没有下载过依赖的同名插件的话需要下载安装,然后重启一下idea--><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional></dependency><!--数据库连接驱动--><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> <scope>runtime</scope></dependency><!--整合druid的数据源--><dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.17</version></dependency>
配置文件改后缀为.yml并配置数据源
spring:
# 数据源的各种配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_plus
username: root
password: 123456
# Mybatis-Plus开启日志打印
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
各层代码编写
domain层实体类
// 在编译期间生成user类的全参构造方法@AllArgsConstructor// 在编译期间生成user类的无参构造方法@NoArgsConstructor// 在编译期间生成封装属性的setter、getter方法,并重写了toString和equals、hashCode方法@Datapublic class User { private Long id; private String name; private Integer age; private String email;}
mapper层继承接口
// spring框架创建mapper接口相对应的接口实现类@Mapperpublic interface UserMapper extends BaseMapper<User> {}
测试类
@SpringBootTestpublic class MybatisPlusTest { @Autowired UserMapper mapper; @Test public void selectListTest() { // 通过条件构造器查询到一个list集合,如果没有条件的话参数设置为null List<User> users = mapper.selectList(null); users.forEach(System.out::println); }}
入门案例查询结果
入门案例中的小知识点
⚠ 测试类中注入mapper组件的时候代码会报红,但是并不会影响最终的程序执行结果。原因是:@Mapper接口将该接口动态生成的代理类注入到IOC容器中起相应的作用,所以使用自动注入mapper的时候会报红在容器中找不到这个接口组件。解决方法:在mapper接口上加@Repository注解将类或接口标注为一个持久层组件。这样的话一个注解用来起作用,一个注解用来注入的时候找到接口组件防止报红 ⚠
生成的SQL语句中,表名为mapper接口传入的泛型首字母小写,表中字段名为泛型类的封装属性,如果需要修改实体类绑定的表名的话需要在实体类上使用@TableName注解
关于“Mybatis Plus案例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Mybatis Plus案例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341