Mybatis-plus的使用

这篇具有很好参考价值的文章主要介绍了Mybatis-plus的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Mybatis-plus的使用

一、简介

Mybatis-plus的基于mybatis的,简化了单表mybatis的操作。

注意:它并没有提升性能,只是简化了开发过程。

二、在springboot中的基本使用

1、导入依赖

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

2、添加相应的数据库配置(application.properties)

# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/books?useUnicode=true&characterEncoding=utf-8
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=root
# mapper的路径
mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml

3、在Application类上添加dao接口的路径扫描

@SpringBootApplication
@MapperScan("com.qf.day15.dao")
public class Day15Application {
    public static void main(String[] args) {
        SpringApplication.run(Day15Application.class, args);
    }
}

4、编写实体类

// 如果表名和实体类的名称一致,如果属性名和数据库表中字段名一致,可以不配置任何实体相关内容
@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

5、编写dao接口

public interface UserDAO extends BaseMapper<User> {
}

6、测试使用

@SpringBootTest
class Day15ApplicationTests {
    @Resource
    private UserDAO userDAO;

    @Test
    void contextLoads() {
        List<User> list = userDAO.selectList(null);
        System.out.println(list);
    }
}
三、常用配置

1、实体类配置

当实体类与表名不一致,字段名与属性名不一致时,需要相应的配置

@TableName 一般用来配置实体类对应的表名,resultMap,以及忽略的属性名(3.3.1以上的版本)等。

用在类上。

@TableId一般用来配置主键的增长方式,并且配置表中的主键字段的名称。相当于id标签

@TableField 一般用来配置表中列的名称。相当于result标签

@Version乐观锁标记。

@Data
@TableName("tb_user")
public class User {
    @TableId(value = "u_id", type = IdType.AUTO)
    private Long id;
    @TableField("u_name")
    private String name;
    @TableField("u_age")
    private Integer age;
    @TableField("u_email")
    private String email;
}
四、常用方法
// 添加
int insert(T entity);
// 根据id删除
int deleteById(Serializable id);

int deleteByMap(@Param("cm") Map<String, Object> columnMap);
// 根据where条件删除
int delete(@Param("ew") Wrapper<T> wrapper);
// 批量根据ids删除
int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
// 根据id修改
int updateById(@Param("et") T entity);
// 根据where条件修改
int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
// 根据id查询对象
T selectById(Serializable id);
// 根据一组ids查询集合
List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);

List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
// 根据添加查询单个对象
T selectOne(@Param("ew") Wrapper<T> queryWrapper);
// 根据添加查询数量
Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);
// 根据添加查询集合
List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);

List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);

List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);
// 分页查询
<E extends IPage<T>> E selectPage(E page, @Param("ew") Wrapper<T> queryWrapper);

<E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param("ew") Wrapper<T> queryWrapper);

构造查询条件Wrapper

具体参考:https://mybatis.plus/guide/wrapper.html#in

public List<User> findAll(int age){
    QueryWrapper wrapper = new QueryWrapper();
    wrapper.gt("u_age", age);
    return userDAO.selectList(wrapper);
}
五、关联查询的实现

mybatis-plus对于关联查询本身需要mybatis来支持,所以可以写mapper.xml来实现。文章来源地址https://www.toymoban.com/news/detail-484448.html

@Data
@TableName("book_type")
public class BookType {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String name;
}

@Data
@TableName(value = "books", resultMap = "bookMap") // 关联xml中的resultMap配置
public class Book {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String name;
    private String author;
    @TableField("book_desc")
    private String bookDesc;
    @TableField("create_time")
    private Date createTime;
    private BookType type;
    @TableField("img_path")
    private String imgPath;
}
<?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="com.qf.day15.dao.BookDAO">
    <resultMap id="bookMap" type="com.qf.day15.entity.Book">
        <association property="type" column="type_id" select="com.qf.day15.dao.BookTypeDAO.selectById"></association>
    </resultMap>
</mapper>

到了这里,关于Mybatis-plus的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mybatis-plus的使用

    Mybatis-plus的使用 一、简介 Mybatis-plus的基于mybatis的,简化了单表mybatis的操作。 注意:它并没有提升性能,只是简化了开发过程。 二、在springboot中的基本使用 1、导入依赖 2、添加相应的数据库配置(application.properties) 3、在Application类上添加dao接口的路径扫描 4、编写实体类

    2024年02月09日
    浏览(41)
  • Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器

    引用官方文档上的简介: 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等 ,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。 文档 github: https://github.com/davidfantasy/mybatis-plus-generator-ui gitee: https://g

    2024年02月10日
    浏览(53)
  • Mybatis-Plus使用方法

    MyBatis-Plus 提供了丰富的增强版的 CRUD 方法,使得开发者能够更简洁、高效地进行数据库操作。以下是如何使用 MyBatis-Plus 自带的增强版 CRUD 方法的基本步骤: 添加依赖 首先,确保你的 Maven 项目中已经添加了 MyBatis-Plus 的相关依赖,包括核心依赖和数据库驱动依赖。 xml复制代

    2024年04月11日
    浏览(45)
  • Mybatis-plus框架使用配置

    MyBatis-Plus(简称 MP)是一个基于 MyBatis 的增强工具,它对 Mybatis 的基础功能进行了增强,但未做任何改变。使得我们可以可以在 Mybatis 开发的项目上直接进行升级为 Mybatis-plus,正如它对自己的定位,它能够帮助我们进一步简化开发过程,提高开发效率。 Mybatis-Plus 其实可以看

    2024年02月09日
    浏览(39)
  • mybatis-plus与mybatis同时使用别名问题

    在整合mybatis和mybatis-plus的时候发现一个小坑,单独使用mybatis,配置别名如下: XML映射文件如下: 单元测试发现没有问题 添加mybatis-plus依赖后,单元测试报错: 显示无法解析XML映射文件中的student 解决办法:要把配置文件里的别名配置改成mybatis-plus的配置,如下: 区别

    2024年04月13日
    浏览(39)
  • 基于Mybatis-Plus拦截器实现MySQL数据加解密

    用户的一些敏感数据,例如手机号、邮箱、身份证等信息,在数据库以明文存储时会存在数据泄露的风险,因此需要进行加密, 但存储数据再被取出时,需要进行解密,因此加密算法需要使用对称加密算法。 常用的对称加密算法有AES、DES、RC、BASE64等等,各算法的区别与优劣

    2024年02月16日
    浏览(39)
  • mybatis-plus使用updateBatchById小记

    过程  staff_info表里,我通过sql把entry_time字段先设置成2,然后再通过代码设置成0,设置成2的时候一共有483条数据,然后通过代码修改的时候,我把number=0132791的数据设置成null,即更新这一条数据肯定会报错,通过debug我知道number=2这条数据在更新的list中处于index=141的位置,所

    2024年02月12日
    浏览(44)
  • mybatis-plus的一些使用案例

    (1)需求分析 在创建和修改的时候,需要判断库名是否重复,而库名是全英文,所以要忽略字母大小写,大小写不同被认为是相同的字母 (2)解决思路 把数据库里的字段,还有要查的条件字段,都转成小写或者大写,然后再判断是否相同 (3)代码案例 (1)Api接口层 参数

    2024年02月13日
    浏览(40)
  • 使用Mybatis-Plus问题解答

    我们使用一个新的框架难免会遇到各种问题,当然使用这款国产的优秀的Mybatis-Plus框架也不例外,下面我就给大家列举一下使用Mybatis-Plus可能遇到的一些问题,并做一下一一的解答。 1:如何排除非表的字段 (这个问题一定要注意,我们Java中写的Entity类的属性是和表的字段一

    2024年02月08日
    浏览(40)
  • 使用Mybatis-plus清空表数据

    方法一:  方法二: 直接使用自带的remove接口 ,同时使用QueryWrapper参数如: 引申一下 Mybatis-plus这个好用的框架: 我们知道 MyBatis 是一个基于 java 的持久层框架,它内部封装了 jdbc,极大提高了我们的开发效率。 但是使用 Mybatis 开发也有很多痛点: 每个 Dao 接口都需要自己

    2023年04月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包