勤哲网站开发视频,微信微商城怎么开通,北京网站建设 时创设计,徐州市建设银行网站写在前面#x1f6eb;更多知识总结见Mybatis-Plus专栏 #x1f695;内容总结自尚硅谷杨博超老师的视频 #x1f692;博主对于该知识尚在学习阶段 #x1f684;如果发现存在问题请毫不吝啬的指出 #x1f680;#x1f680;扎哇太枣糕的博客首页#x1f680;#x1f680;… 写在前面更多知识总结见Mybatis-Plus专栏 内容总结自尚硅谷杨博超老师的视频 博主对于该知识尚在学习阶段 如果发现存在问题请毫不吝啬的指出 扎哇太枣糕的博客首页 文章目录1 初识Mybatis-Plus2 入门案例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)
) ENGINEInnoDB DEFAULT CHARSETutf8;INSERT INTO user (id, name, age, email) VALUES
(1, Jone, 18, test1baomidou.com),
(2, Jack, 20, test2baomidou.com),
(3, Tom, 28, test3baomidou.com),
(4, Sandy, 21, test4baomidou.com),
(5, Billie, 24, test5baomidou.com);第二步 使用Spring Initializr快速创建一个SpringBoot工程 删除选中的不必要文件以及文件夹第三步 pom文件导入相关依赖
!--mybatis-的场景启动器--
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version
/dependency!--lombok简化实体类开发如果之前没有下载过依赖的同名插件的话需要下载安装然后重启一下idea--
dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional
/dependency!--数据库连接驱动--
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/versionscoperuntime/scope
/dependency!--整合druid的数据源--
dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.17/version
/dependency第四步 配置文件改后缀为.yml并配置数据源
spring:# 数据源的各种配置datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis_plususername: rootpassword: 123456# Mybatis-Plus开启日志打印
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl各层代码编写
domain层实体类
/*** author : mereign* date : 2022/3/13 - 14:28* desc : user实体类*/// 在编译期间生成user类的全参构造方法
AllArgsConstructor
// 在编译期间生成user类的无参构造方法
NoArgsConstructor
// 在编译期间生成封装属性的setter、getter方法并重写了toString和equals、hashCode方法
Data
public class User {private Long id;private String name;private Integer age;private String email;}mapper层继承接口
/*** author : mereign* date : 2022/3/13 - 15:43* desc : 创建mapper接口继承BaseMapper接口并传user泛型*/// spring框架创建mapper接口相对应的接口实现类
Mapper
public interface UserMapper extends BaseMapperUser {
}测试类
/*** author : mereign* date : 2022/3/13 - 15:50* desc : 测试类简单测试mp的查询方法*/SpringBootTest
public class MybatisPlusTest {AutowiredUserMapper mapper;Testpublic void selectListTest() {// 通过条件构造器查询到一个list集合如果没有条件的话参数设置为nullListUser users mapper.selectList(null);users.forEach(System.out::println);}
}入门案例查询结果入门案例中的小知识点 ⚠ 测试类中注入mapper组件的时候代码会报红但是并不会影响最终的程序执行结果。原因是Mapper接口将该接口动态生成的代理类注入到IOC容器中起相应的作用所以使用自动注入mapper的时候会报红在容器中找不到这个接口组件。解决方法在mapper接口上加Repository注解将类或接口标注为一个持久层组件。这样的话一个注解用来起作用一个注解用来注入的时候找到接口组件防止报红 ⚠ 生成的SQL语句中表名为mapper接口传入的泛型首字母小写表中字段名为泛型类的封装属性如果需要修改实体类绑定的表名的话需要在实体类上使用TableName注解