学习 MyBatis-Plus 笔记

SpringBoot整合MyBatis-Plus

一、 依赖

 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>3.5.1</version>
</dependency>

二、 实体类注解

        实体类对应表名:@TableName("表名")或@TableName(value = "表名")

​         主键自增字段ID:@TableId(type = IdType.AUTO) 放在id上

        ​ 非主键id字段@TableeField("字段名")

三、dao层

//Mapper接口继承 
extends BaseMapper<实体类>

四、配置application.yml文件

        配置输出完整SQL日志

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

五、controller层

// 查询
	1.根据id查询.selectById
 	2.根据ids查询多条  List<Integer> ids = Arrays.asList(1,2); return classinfoMapper.selectBatchIds(ids);
	3.多参数查询.selectByMap(map); 使用map进行传参
	4.模糊查询
        // 创建条件构造器
         QueryWrapper<Classinfo> queryWrapper = new QueryWrapper<Classinfo>();
		queryWrapper.eq("列名", 值).like("列名", "值");
		// 只能返回一条数据,否则报错
	5.时间区间查询
         // 创建条件构造器
         QueryWrapper<Classinfo> queryWrapper = new QueryWrapper<Classinfo>();
		queryWrapper.gt("起始时间列名","值").lt("起始时间列名","值");
		Map<String,Object> results = new HashMap<String,Object>();
		// 如果传null则查询所有
		List<对象> data = xxxMapper.selectList(queryWrapper);
		// 查询数据条数
		Long count = xxxMapper.selectCount(queryWrapper);
		results.put("data",data);
		results.put("count",count);
		return results;
	6.子查询
         // 创建条件构造器
         QueryWrapper<Classinfo> queryWrapper = new QueryWrapper<Classinfo>();
		queryWrapper.inSql("子查询需要查询出的字段","SQL语句,查询出的是想要的字段,而不是 * ")
         return xxxMapper.selectMaps(queryWrapper);
	7.排序---倒序
         // 创建条件构造器
         QueryWrapper<Classinfo> queryWrapper = new QueryWrapper<Classinfo>();
		queryWrapper.orderByDesc("倒序列名");
		return xxxMapper.selectObjs(wrapper);
	8.分页  使用时间区间进行查询分页 先引入 八、分页查询的类,放在config包下
         // 创建条件构造器
         QueryWrapper<Classinfo> queryWrapper = new QueryWrapper<Classinfo>();
		// 传入区间参数(列,值)
		queryWrapper.gt("起始时间列名","值").lt("起始时间列名","值");
		// 创建 分页对象
		Page<Classinfo> page = new Page<Classinfo>(起始页数,起始条数);
		// 传参调用查分页方法
		xxxMapper.selectPage(page, queryWrapper);
		// 分页的数据
        List<实体类> data = page.getRecords();
		// 条数
        long total = page.getTotal();
		// 页数
        long pages = page.getPages();
        // 当前页数
        long current = page.getCurrent();
		Map<String,Object> map = new HashMap<>();
            map.put("data",data);
            map.put("total",total);
            map.put("pages",pages);
            map.put("current",current);
        return map;
// 新增
	1.插入一条数据.insert
// 删除
	1.根据id删除一条数据delete
	2.批量删除deleteByIds  List<Integer> ids = 	Arrays.asList(4,5,6);  int i = classinfoMapper.deleteBatchIds(ids);
	3.根据条件删除deleteByMap  传参@RequestParam 	Map<String,Object> map
// 修改
	1.根据id更新一条数据 .updateById

六、XML自定义SQL操作

        操作步骤

                第一步、在控制层调用mapper接口方法,传入分页和多条件查询参数。

​                第二步、在持久层mapper接口中创建方法,传入分页工具Page和多条件查询参数。

​                第三步、在 src/main/resources/mapper 中创建mapper.xml文件,编写SQL。

// 第一步:
// 模拟查询参数 controller层
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("列名","值");
        // 创建Page 分页工具类
        Page<实体类> page = new Page<实体类>(页数,条数);
        // 调用mapper的方法,返回值是Page分页工具类
        Page<实体类> pageData = classinfoMapper.XMLSQLAndPage(page,map);
		// 分页的数据
        List<Classinfo> data = pageData.getRecords();
        // 总条数
        long total = pageData.getTotal();
        // 页数
        long pages = pageData.getPages();
        // 当前页数
        long current = pageData.getCurrent();
        // Map<String,Object> map = new HashMap<>();
        map.put("data",data);
        map.put("total",total);
        map.put("pages",pages);
        map.put("current",current);
        return map;
// 第二步:
// dao层   点击报红的XMLSQLAndPage去dao层的mapper接口创建方法
	Page<实体类> XMLSQLAndPage(Page<实体类> page, @Param("map") Map<String, Object> map);
// 第三步:
// 1.在 resources 文件夹下创建 mapper 文件夹
// 2.在文件夹中创建 xxxMapper.xml 文件
// 3.编写多表联查SQL语句
<!-- mapper头部文件 -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="">

</mapper>

七、逻辑删除和自动填充

        逻辑删除

    // 逻辑删除操作步骤
    // 第一步:修改表结构添加 deleted 字段 默认值 0 表示未删除
    // 第二步:在实体类中添加deleted属性
    // 第三步:给实体类设 @TableLogic 注解
    // 第四步:测试删除和查询操作
    // 在yml文件中修改默认值
# 可配置自定义配置文件 global-config
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      logic-delete-field: 字段
      logic-delete-value: 删除
      logic-not-delete-value: 未删除

        自动填充

// 第一步:使用注解,标记需要填充的字段
    @TableField(fill = FieldFill.标记)
    // 标记分为:DEFAULT:默认不处理
    // INSERT:插入填充字段
    // UPDATE:更新填充字段
    // INSERT_UPDATE:插入和更新填充字段
// 第二步:自定义策略实现类MyMetaObjectHandler
	// 1.实现MetaObjectHandler
	// 2.重写方法
	// 类上注解
		@Slf4j
		@Component
	// 方法内填充
	this.setFieldValByName("字段",填充数据,metaObject);
// 第三步、测试新增和修改

八、分页查询,放在config包下

@Configuration
@MapperScan("扫描你的mapper接口包")
public class MybatisPlusConfig {

    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }

    // @Bean
    // public ConfigurationCustomizer configurationCustomizer() {
    //    return configuration -> configuration.setUseDeprecatedExecutor(false);
    // }
}

end.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MyBatis-Plus是一个MyBatis的增强版工具,它在MyBatis的基础上扩展了其他功能,但没有改变其基本功能。它的存在是为了简化开发,提高效率。 要使用MyBatis-Plus,可以采用SpringBoot快速使用的方式。具体步骤如下: 1. 首先,在你的项目中引入MyBatis-Plus的依赖。可以在项目的pom.xml文件中添加MyBatis-Plus的依赖配置。 2. 然后,配置数据库连接信息,可以在项目的配置文件(比如application.properties或application.yml)中配置数据库连接信息,包括数据库驱动、url、用户名和密码等。 3. 接着,创建实体类和Mapper接口。实体类用于映射数据库表结构,Mapper接口用于定义数据库操作的方法。 4. 使用MyBatis-Plus提供的注解或方法,进行数据库的增删改查操作。比如可以使用@TableName注解指定实体类对应的数据库表名,使用@Insert注解进行插入操作,使用@Update注解进行更新操作,使用@Delete注解进行删除操作,使用@Select注解进行查询操作等。 5. 最后,在需要使用数据库操作的地方,注入Mapper接口,并调用方法进行相应的操作。 通过以上步骤,就可以使用MyBatis-Plus进行数据库操作了。这样可以简化开发过程,提高效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Mybatis-plus的使用](https://blog.csdn.net/yr6123/article/details/125890028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MyBatis-Plus 笔记](https://blog.csdn.net/i_silence/article/details/106807077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦逝忘尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值