Mybatisplus官网详解

一、简介

Mybatisplus是一个基于mybatis的增强工具,可快速、安全的开发mybatis相关项目。它提供了许多实用的功能,如分页、条件构造器、性能分析、代码生成等。

Mybatisplus官网提供了完整的文档、代码示例、疑难解答等一系列资源,方便开发者学习和使用。

二、使用步骤

1. 引入依赖


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

2. 配置mybatisplus


mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true # 开启驼峰命名
    use-generated-keys: true # 开启自动生成功能

3. 创建实体类


@Data
public class User{
    private Long id;
    private String username;
    private Integer age;
}

4. 创建Mapper接口


public interface UserMapper extends BaseMapper<User>{
}

5. 基础CRUD


// 插入操作
User user = new User();
user.setUsername("Mybatis");
user.setAge(18);
userMapper.insert(user);

// 查询单个实体
User result = userMapper.selectById(1L);

// 更新操作
User user = userMapper.selectById(1L);
user.setUsername("Mybatisplus");
userMapper.updateById(user);

// 删除操作
userMapper.deleteById(1L);

三、分页查询

1. 分页配置


Page<User> page = new Page<>(1, 10);

2. 分页查询


QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.lambda().lt(User::getAge, 18);
Page<User> page = new Page<>(1, 10);
IPage<User> iPage = userMapper.selectPage(page, wrapper);
List<User> userList = iPage.getRecords();

四、条件构造器

1. 创建条件构造器


QueryWrapper<User> wrapper = new QueryWrapper<>();

2. 添加条件


wrapper.lambda().eq(User::getUsername, "Mybatisplus");

3. 执行查询


List<User> userList = userMapper.selectList(wrapper);

五、代码生成器

1. 配置代码生成器


AutoGenerator generator = new AutoGenerator();
generator.setDataSource(dataSourceConfig);
generator.setGlobalConfig(globalConfig);
generator.setPackageInfo(packageConfig);
generator.setTemplate(templateConfig);
generator.setStrategy(strategyConfig);

2. 执行生成


generator.execute();

六、性能分析插件

1. 配置perfix和log类型


mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 指定logging日志实现
    sql-log-format: lower_case # 显示sql格式
    sql-injector: org.apache.ibatis.builder.MapperBuilderAssistant $NoInject
    cache-enabled: false
    local-cache-scope: SESSION
  mapper-locations: classpath:/mapper/*.xml
  type-aliases-package: com.baomidou.mybatisplus.sample.model
  global-config: #全局配置
    db-config:
      id-type: AUTO # 全局主键策略
      field-strategy: not_empty
      db-type: mysql
      logic-delete-value: 1
      logic-not-delete-value: 0
      column-like: true # CRU中参数对象FilecdLike查询条件,默认false:为按等于匹配
      refresh-mapper: true # mapper.xml热加载
      sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector # 默认值
      super-mapper-class: com.baomidou.mybatisplus.mapper.BaseMapper # 默认值
      cache-enabled: false # 全局缓存配置,,默认值true
    execution-analysis:
      enable: true
      close-out-param: false # 全局调试开关

2. 开启and、in、or输出


wrapper.lambda().and(i -> i.lt(User::getAge, 18).or().isNotNull(User::getEmail));

七、动态表名

1. 配置SqlParser


List<ISqlParser> sqlParserList = new ArrayList<>();
sqlParserList.add(new TableNameParser());
// 动态表名配置
DynamicTableNameParser dynamicTableNameParser = new DynamicTableNameParser();
dynamicTableNameParser.setTableNameHandlerMap(handlerMap);
sqlParserList.add(dynamicTableNameParser);

2. 注入SqlParser


SqlParserHandler sqlParserHandler = new SqlParserHandler();
sqlParserHandler.setSqlParserList(sqlParserList);
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
performanceInterceptor.setSqlParserList(sqlParserList);

八、定制化

Mybatisplus官网提供了许多定制化的方法,如关键字处理、属性过滤器、自定义全局操作等。请查看官网文档,以充分利用Mybatisplus所提供的强大功能。

原创文章,作者:JADOK,如若转载,请注明出处:https://www.506064.com/n/372272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JADOKJADOK
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相关推荐

  • Python官网中文版:解决你的编程问题

    Python是一种高级编程语言,它可以用于Web开发、科学计算、人工智能等领域。Python官网中文版提供了全面的资源和教程,可以帮助你入门学习和进一步提高编程技能。 一、Pyth…

    编程 2025-04-29
  • 国家数字图书馆官网打不开怎么办?

    如果你发现无法访问国家数字图书馆官网,可能是以下几个方面导致的。 一、网络连接问题 首先,我们要确定自己的网络存在没有问题。可以通过浏览器访问其他网站来检测网络连接是否正常。 二、…

    编程 2025-04-29
  • Python中文版下载官网的完整指南

    Python是一种广泛使用的编程语言,具有简洁、易读易写等特点。Python中文版下载官网是Python学习和使用过程中的重要资源,本文将从多个方面对Python中文版下载官网进行…

    编程 2025-04-29
  • 尚硅谷官网地址用法介绍

    尚硅谷是国内一家领先的技术培训机构,提供了众多IT职业的培训,包括Java、Python、大数据、前端、人工智能等方向。其官网地址为http://www.atguigu.com/。…

    编程 2025-04-29
  • MLflow官网用法介绍

    本文将从多个方面详细阐述MLflow官网的功能和使用方法,让读者在学习和使用MLflow过程中更加便利。 一、介绍 MLflow是一个开源的机器学习平台,由Databricks团队…

    编程 2025-04-29
  • Python模块库大全官网

    Python模块库大全官网是一个全面收录Python模块库的网站,开发者可以在该网站中找到自己需要的模块库、文档、教程等资源,提高开发效率,降低开发成本。本文将从多个方面对Pyth…

    编程 2025-04-27
  • 老虎证券app官网下载

    老虎证券是一家提供在线股票交易服务的综合性经纪商。老虎证券app是老虎证券的官方移动应用,它可以为投资者提供包括股票、期货、外汇和数字货币的多种交易服务。本文将介绍老虎证券app的…

    编程 2025-04-27
  • 保利票务官网的开发实现

    保利票务官网是一个拥有强大性能和优秀用户体验的在线售票平台,其前端由 HTML、CSS 和 JavaScript 组成,后台使用 PHP 和 MySQL 进行数据存储和管理。本文将…

    编程 2025-04-27
  • OpenSwan 官网用法介绍

    OpenSwan 是一种开源 IPsec 协议,可以用于创建安全的虚拟专用网络。 一、OpenSwan 概述 OpenSwan 是一个成熟的、被广泛使用的开源项目。它支持 IPSE…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25

发表回复

登录后才能评论