龙岗坪地网站建设,做衣服的网站,网站首页制作教程,小程序传奇代理目录
一、MyBatis-Plus的使用步骤
1.引入MybatisPlus的起步依赖
2.定义Mapper#xff08;也叫dao#xff09;层的接口
3.MyBatis-Plus中常用注解
4. 使用MyBatis-Plus时要做如下配置
5.条件构造器 Wrapper 一、MyBatis-Plus的使用步骤
1.引入MybatisPlus的起步依赖
M…目录
一、MyBatis-Plus的使用步骤
1.引入MybatisPlus的起步依赖
2.定义Mapper也叫dao层的接口
3.MyBatis-Plus中常用注解
4. 使用MyBatis-Plus时要做如下配置
5.条件构造器 Wrapper 一、MyBatis-Plus的使用步骤
1.引入MybatisPlus的起步依赖
MyBatisPlus官方提供了starter依赖包,其中集成了Mybatis和MybatisPlus的所有功能并且实现了自动装配效果。 因此我们可以用_MybatisPlus的starter_直接代替Mybatis的starter:
!--Mybatisplus--
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.3.1/version
/dependency2.定义Mapper也叫dao层的接口
用我们自定义的dao接口继承MybatisPlus提供的BaseMapper接口
public interface UserMapper extends BaseMapperUser?{
}在该接口中提供了许多基本的sql增删改查方法我们无需写sql语句直接调用这些方法即可完成对数据的增删改查 3.MyBatis-Plus中常用注解
MyBatisPlus会通过扫描实体类并基于反射获取实体类的属性名称然后匹配到数据库表中相应字段。具体关系如下图 因此我们在定义实体类和数据库表时应该遵循MP中一些默认的约定规范来确保字段名和属性名正确的匹配到。约定如下
类名蛇峰转下刘线作为表名名为id的属性作为表中的主键变量名陀峰转下刘线作为表的字段名
如果在写Java代码时我们某些代码不想符合上述三条约定的写法也可以使用MP中的常见注解来自定义约定如下
4. 使用MyBatis-Plus时要做如下配置
1如果是在Spring Boot 工程中要配置Mapper接口所在的包在Spring Boot的启动类上添加**MapperScan**注解并指定Mapper接口所在的包路径。
SpringBootApplication
MapperScan(com.baomidou.mybatisplus.samples.quickstart.mapper)
public class Application {
?? ?public static void main(String[] args) {? ? ? ?SpringApplication.run(Application.class, args);? }
?
}注意在该例子中**“com.baomidou.mybatisplus.samples.quickstart.mapper”**是 MyBatis-Plus 官方示例项目中的一个包路径用于存放示例的 Mapper 接口。在实际应用中你应该将MapperScan注解中的字符串参数替换为你自己的项目中 Mapper 接口所在的包路径。
2在Spring MVC工程中使用MyBatis-Plus要做如下配置
①首先在.xml配置文件中配置 MapperScan 注解
bean classorg.mybatis.spring.mapper.MapperScannerConfigurer? ?property namebasePackage valuecom.baomidou.mybatisplus.samples.quickstart.mapper/
/bean②然后调整 SqlSessionFactory 为 MyBatis-Plus 的 SqlSessionFactory
bean idsqlSessionFactory classcom.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean? ?property namedataSource refdataSource/
/bean③通常来说一般的简单工程通过以上配置即可正常使用 MyBatis-Plus具体可参考以下链接? Spring Boot 快速启动示例 ? Spring Boot 快速启动示例
? ?Spring MVC 快速启动示例 ? ?Spring MVC 快速启动示例。
同时 MyBatis-Plus 提供了大量的个性化配置来满足不同复杂度的工程大家可根据自己的项目按需取用详细配置请参考链接
使用配置[这里是图片004]https://baomidou.com/reference/
Spring Boot 配置
在 Spring Boot 项目中可以通过 application.yml 或 application.properties 文件来配置 MyBatis-Plus。
yml配置文件中MyBatisPlus的配置项继承了MyBatis.原生配置和一些自己特有的配置。例如
mybatis-plus:type-aliases-package: com.yzx.xxx.po #别名扫描包mapper-locations: classpath*:/mapper/**/*,Xml #Mapper.Xml文件地址configuration:map-underscore-to-camel-case: true #是否开启下划线和驼峰的映射cache-enabled: false #是否开启二级缓存global-config:db-config:id-type: assign_id #id为雪花算法生成update-strategy: not_null #设置更新策略只更新非空字段
?代码中globa-config下的配置表示全局其优先级小于实体类中注解的优先级。
如下图 Spring MVC 配置
在传统的 Spring MVC 项目中可以通过 XML 配置文件来配置 MyBatis-Plus。
bean idsqlSessionFactory classcom.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean? ?property namedataSource refdataSource/? ?property namemapperLocations valueclasspath*:mapper/**/*.xml/? ?property nametypeAliasesPackage valuecom.your.domain/? ?!-- 其他配置 --
/bean5.条件构造器 Wrapper
前提BaseMapper接口中自带的增删改查方法都是通过数据的Id作为条件进行的如果想要自定义查询条件则需要用到条件构造器Wrapper
Wrapper类与其字类的继承关系如下 Wrapper类中提供的用于自定义构建查询条件的一些方法 下面我们以最常用的QueryWrapper查询条件构造器为例来演示如何使用条件构造器来构造我们的sql查询
**QueryWrapper查询语句的条件构造器**它拓展了select的功能可以指定查找哪些字段
使用方法
首先构造一个Wrapper对像并通过该对象来编写查询条件然后将刚刚创建的Wrapper对象作为参数传入查询方法中
例如我们要进行一个如下的sql查询
查询出名字中带o的存款大于等于1000元的人的id、用户名username、信息info和收入balance
SQL语句如下
SELECT id,username,info,balance
FROM user
WHERE username LIKE %o%
AND balance 1000;用QueryWrapper条件构造器来实现上述SQL语句的代码如下
Test
public void testQuerywrapper(){//1.构建查询条件QueryWrapperuser wrapper new QueryWrapperuser().select(id,username,info,balance).like(username,o).ge(balance,1000);//2.查询Listuser users userMapper.selectList(wrapper);
}条件构造器Wrapper中的函数所对应的sql语法具体对应表如下 **另外**在 MyBatis-Plus 中的IService接口是对service层的一个加强继承了IService接口的service会自带一些方法感兴趣的小伙伴可以自行探索
其中save()方法是一个非常重要的功能它用于将实体对象保存到数据库中。具体地说save 方法会根据实体对象的 ID主键来决定是执行插入insert操作还是更新update操作。 **插入操作**如果传入的实体对象的 ID 为空即该对象在数据库中尚不存在save 方法会执行插入操作将该对象插入到数据库中并自动生成一个 ID如果使用了自动增长的主键策略。 **更新操作**如果传入的实体对象的 ID 不为空即该对象在数据库中已经存在save 方法会执行更新操作将该对象的属性更新到数据库中对应的记录上。这里需要注意的是MyBatis-Plus 默认只会更新非空属性即如果实体对象的某个属性为 null则不会将该属性更新到数据库中除非你进行了特殊的配置。