04--MybatisPlus的入门与使用【一】

1. MybatisPlus

1.1 MP的介绍

说明:MyBatis-Plus(open new window)(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MP主要完成单表的CURD操作,从而简化开发。
1

2 MP的入门案例

2.1 实现步骤

  1. 导入jar包文件。
  2. 思想:使用对象的方式操作数据库。
  3. 编辑POJO实现对象与数据库表的映射关系。
  4. 继承公共的接口,获取常用的CURD操作。
  5. 实现数据的操作。

2.2 引入jar包

 <!--spring整合mybatis-plus,同时,如果MP中包含了mybatis原来的包则需要删除它 -->
        <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3</version>
        </dependency>

2.3 编辑POJO实体类

说明:

  1. POJO应该与数据库中的表完成映射。
  2. POJO中的属性与表中的字段要一一映射。
    注解:
  3. @TableName(“demo_user”) 实现对象与表名的映射
  4. @TableId(type = IdType.AUTO) 设定主键自增
  5. @TableField(“name”) 实现属性与字段的映射
    规则:如果属性与字段的名称一致,则注解可以省略
    1
@Data //自动为实体类生成常用的方法,set,get,构造方法等
@Accessors(chain = true) //开启链式加载
@TableName(value = "demo_user") //实现对象与表名的映射
public class User {
    @TableId(type = IdType.AUTO) //设置主键自增
    private Integer id;
    @TableField("name") //实现属性与字段的映射,如果字段名与属性名相同,则该注解可以省略。
    private String name;
    private Integer age;
    private String sex;
    @TableField(exist=false)
    private String address;//不存在的字段可忽略
}

2.4 继承公共的接口

说明:继承接口之后,必须添加泛型对象,否则程序无法执行。
父级中的接口:MP将常用的CURD的方法进行了抽取,子类如果需要调用,可直接使用。
1

2.5 创建application.yml配置文件

server:
  port: 8090

#spring整合数据源 最快的数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    #如果密码以数字0开头,则使用""号包裹  "0123456"
    password: root

#SpringBoot整合MybatisPlus配置
mybatis-plus:
  #设置别名包
  type-aliases-package: com.jt.pojo
  #加载映射文件
  mapper-locations: classpath:/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true
  # 打印Sql语句
  logging:
    level:
      #指定包路径,日志输出
      com.jt.mapper: debug

2.6 创建UserMybatis.xml映射文件

<?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">
<!--语法:namespace="接口的路径" -->
<mapper namespace="com.jt.mapper.UserMapper">

    <select id="foundAll" resultType="User">
        select * from demo_user
    </select>

</mapper>

2.7 测试

@SpringBootTest
public class TestMybatis {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void testfind(){
        System.out.println(userMapper.foundAll());
    }

    @Test
    //以对象的方式操作数据库,单表几乎不写sql
    public void testInsert(){
        User user = new User();
        user.setName("战神刑天").setAge(20).setSex("男");
        userMapper.insert(user);
        System.out.println("新增完成!!");
    }
}

3 MP的工作原理

  • 思想:以对象的方式操作数据库。
  • 配置:
  1. 编辑POJO与数据库中表的映射。
  2. 编辑POJO属性与表字段的映射。
  3. 封装了大量常用的CURD API,简化了用户调用。
  4. 根据对象动态的生成sql语句。
  • 执行过程:
  1. 程序业务开始调用,userMapper.insert(user);
  2. 根据Mapper接口动态获取操作的泛型对象,获取对象之后,获取表的相关数据。public interface UserMapper extends BaseMapper.
  3. 只要获取对象,就得到了表名称,字段名,数据的值。
  4. 将对象转化为特定的sql之后,交给Mybatis执行,userMapper.insert(user对象);

3.1 MP常用操作

3.1.1 基于ID查询数据

等价于Sql语句:SELECT id,name,age,sex FROM demo_user WHERE id=?
selectById(Serializable id)
User user = userMapper.selectById(3);

3.1.2 基于条件selectList查询数据一

等价于Sql语句: select * from demo_user where name=“xx” and sex=“xx”

  • 查询name=小乔,sex=男 的用户
    selectList(Wrapper<User> queryWrapper)
User user = new User();
user.setName("小乔").setSex("男");
//条件构造器,会为where封装条件。相当于自动的把小乔和男作为where的条件进行查询。
QueryWrapper queryWrapper = new QueryWrapper(user);
List<User> list =  userMapper.selectList(queryWrapper);

3.1.3 基于条件selectList查询数据二

等价于Sql语句: SELECT id,name,age,sex FROM demo_user WHERE name=? AND sex=?

  • 查询name=小乔,sex=男 的用户
 //条件构造器,会为where封装条件。
  QueryWrapper<User> queryWrapper = new QueryWrapper();
  queryWrapper.eq("name", "小乔").eq("sex", "男");//如果有多个条件,可给构造器添加泛型。
  List<User> list =  userMapper.selectList(queryWrapper);

3.1.4 基于条件selectList查询数据三

等价于Sql语句:SELECT * demo_user WHERE age > 18 and sex=“女”

  • 查询 age> 18 sex="女"的用户
  • 逻辑运算符: > gt, < lt, = eq, >= ge, <= le, != ne
 QueryWrapper<User> queryWrapper = new QueryWrapper();
 queryWrapper.gt("age", 18).eq("sex", "女");
 List<User> list =  userMapper.selectList(queryWrapper);

3.1.5 like 关键字模糊selectList查询数据

likeLeftlikelikeright

QueryWrapper<User> queryWrapper = new QueryWrapper();
queryWrapper.likeLeft("name", "乔");
List<User> list =  userMapper.selectList(queryWrapper);

3.1.6 in 关键字selectList查询数据

可变参数的语法:(Integer … id),且参数必须位于最后一位。

 //条件构造器,会为where封装条件。
  QueryWrapper<User> queryWrapper = new QueryWrapper();
  Integer[] ids = {1,3,5,7};
  queryWrapper.in("id", ids);
  List<User> list =  userMapper.selectList(queryWrapper);

3.1.7 order by 排序selectList查询数据

默认规则:升序 asc(默认)、降序 desc。
需求:查询性别为男的用户,且按照年龄降序排序排序
sql:select * from demo_user where sex=“男” order by desc

 //条件构造器,会为where封装条件。
 QueryWrapper<User> queryWrapper = new QueryWrapper();
 queryWrapper.eq("sex", "男").orderByDesc("age" );
 List<User> list =  userMapper.selectList(queryWrapper);

3.1.8 动态sql

根据用户的条件,动态的拼接where条件。

select * from demo_user where age > 18 and sex="女"

API说明:
queryWrapper.gt(判断条件,字段名称,字段值)
判断条件:
true 则动态的拼接where条件
false 不会拼接where条件

 Integer age = 18;
 String sex = "女";
  //条件构造器,会为where封装条件。
 QueryWrapper<User> queryWrapper = new QueryWrapper();
  Boolean ageBoo = (age !=null);
  Boolean sexBoo = StringUtils.hasLength(sex);
  queryWrapper.gt(ageBoo, "age",age)
              .eq(sexBoo,"sex","女");
 List<User> list =  userMapper.selectList(queryWrapper);

3.1.9 删除操作

 QueryWrapper queryWrapper = new QueryWrapper();
   queryWrapper.eq("name","xxx");
  userMapper.delete(queryWrapper);

3.1.10 更新操作-任意字段

 - API说明:
  	userMapper.update(对象,修改条件构造器)
  	对象: 修改后的数据使用对象封装
  	修改条件构造器: 负责修改的where条件
User user = new User();
user.setName("宵夜吃什么").setAge(20).setSex("女");
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("name","MP");//条件:name=MP
userMapper.update(user,updateWrapper);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 如果你想要入门 MyBatis-Plus,可以按照以下步骤进行: 1. 首先,你需要在你的项目中引入 MyBatis-Plus 的依赖。可以在你的项目的 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> ``` 请确保将最新版本号替换为你想要使用MyBatis-Plus 版本号。 2. 然后,你需要配置 MyBatis-Plus。你可以在你的项目中创建一个 MyBatisPlusConfig 类,并在该类中注册一些必要的 Bean。例如,如果你想要使用乐观锁插件,你可以在 MyBatisPlusConfig 类中注册一个 OptimisticLockerInterceptor 的 Bean,如下所示: ```java @Configuration public class MyBatisPlusConfig { @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } } ``` 这样就完成了乐观锁插件的注册。 3. 最后,你需要在 MyBatis 的配置文件中配置 MyBatis-Plus 的一些属性。例如,如果你想要在控制台输出 MyBatis-Plus 的日志,你可以在配置文件中添加以下配置: ``` mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ``` 这样就完成了 MyBatis-Plus入门配置。 总结起来,要入门 MyBatis-Plus,你需要引入依赖、配置 MyBatisPlusConfig 类和配置 MyBatis-Plus 的属性。这样就可以开始使用 MyBatis-Plus 来简化开发和提高效率了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MybatisPlus入门教程](https://blog.csdn.net/qq_44732432/article/details/129221273)[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: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值