Mybatis Plus与Mysql整合的入门教程

开始前准备:

这是基于SpringBoot的项目,SpringBoot 2.3版本;使用工具:IDEA 2019、SQLyog10
一、首先要在已存在数据库(使用SQLyog10)中建一个实体类的表,表结构如下:

在这里插入图片描述

二、搭建项目的目录结构,截图如下:

在这里插入图片描述

三、pom依赖

在这里插入图片描述

四、yaml文件

在这里插入图片描述

五、实体类

在这里插入图片描述

package com.my.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data//标明封装数据的实体类是User,不写该注解的话,打印数据时出现的hashCode
@NoArgsConstructor//自动生成无参构造方法
@AllArgsConstructor//所有参数构造方法
@TableName("user_info")//数据库的表名字
public class User {
    @TableId(value = "user_id",type = IdType.AUTO)//数据库ID自增,如果数据库中的主键设置的是自增的,那么这里就要设置一下
    private Integer userId;//用户id
    @TableField("user_name")//字段注解(非主键)
    private String userName;//用户的姓名
    @TableField("user_age")
    private Integer userAge;//用户年龄

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setUserAge(Integer userAge) {
        this.userAge = userAge;
    }

    public Integer getUserId() {
        return userId;
    }

    public String getUserName() {
        return userName;
    }

    public Integer getUserAge() {
        return userAge;
    }
}

六、UserInfoMapper类

在这里插入图片描述

package com.my.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.my.entity.User;
import org.springframework.stereotype.Component;

@Component//不加它的话,Could not autowire. No beans of 'UserInfoMapper' type found.
// 如果不加它的话也可以写成@Component("userInfoMapper")
public interface UserInfoMapper extends BaseMapper<User> {
}

七、SpringBoot启动器类

在这里插入图片描述

package com.my;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.my.mapper")//扫描此包下面的所有的mapper接口
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

八、测试类
package com.my;

import com.my.entity.User;
import com.my.mapper.UserInfoMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.List;

@SpringBootTest
class DemoApplicationTests {
    //自动注入UserInfoMapper接口实现类
    @Autowired
    private UserInfoMapper mapper;
    private  User user=new User();//封装user实体类
    @Test
    void contextLoads() {
        //查询所有的用户信息,mapper中的 selectList() 方法的参数为 MP内置的条件封装器 Wrapper,所以不填写就是无任何条件
        List<User> listAllUser = mapper.selectList(null);
        for (User user : listAllUser) {
            System.out.println(user);
        }
    }
    @Test
   void testInsert(){
        //测试插入数据的方法,注意这个测试方法不能有返回值,应该设置为void,否则不出结果
        user.setUserName("陆斌卡门");
        user.setUserAge(46);
        int rows=mapper.insert(user);//此方法传入一个User实体类对象
       //封装好了对象后,调用方法进行插入数据操作
          if(rows>=0){
           System.out.println("插入新的数据成功");
       }else{
              System.out.println("插入新的数据失败");
          }

    }
    @Test
    void testDelete(){
        //根据id进行删除,返回影响行数
        int rows=mapper.deleteById(9);//注意如果删除不存在id也会删除成功,但是不会报错
        if(rows>=0){
            System.out.println("删除成功");
        }else{
            System.out.println("删除失败");
        }

    }
    @Test
    void testBatchDelete(){
        //测试批量删除的方法
        List<Integer> listIds=new ArrayList<Integer>();
        //因为要传入很多的id,为集合,所以要将删除的id添加至list集合里面
        listIds.add(6);
        listIds.add(7);
        listIds.add(8);
        int rows=mapper.deleteBatchIds(listIds);
        if (rows>=0){
            System.out.println("批量删除数据成功");
        }else {
            System.out.println("批量删除数据失败");
        }
    }
    @Test
    void testUpdate(){
        //测试更新的方法
        //条件的设置
        user.setUserId(2);//修改id 2号的信息
        user.setUserAge(12);
        user.setUserName("欧阳靖康");
        int rows=mapper.updateById(user);
        if(rows>=0){
            System.out.println("修改信息成功");
        }else {
            System.out.println("修改信息失败");
        }
    }
    @Test
    void testUpdate2(){
        //测试更新的方法,只修改欧阳靖康的年龄,看是否修改成;
        //如果是动态sql修改的话,只是修改你提供的信息,而不是修改所有的(如果不是动态的sql语句,它会将原来的"欧阳靖康"赋值为null)
        //条件的设置
        user.setUserId(2);//修改id 2号的信息,//根据id进行更新,没有传值的属性就不会更新
        user.setUserAge(66);
//        user.setUserName("欧阳靖康");
        int rows=mapper.updateById(user);
        if(rows>=0){
            System.out.println("修改信息成功");
        }else {
            System.out.println("修改信息失败");
        }
    }
    @Test
    void  testBatchSelect(){
        //根据id进行批量的查询
        //1.准备存id的集合List
        List<Integer> idList=new ArrayList<Integer>();
        //2.添加想要查询的id编号至集合List中
        idList.add(1);
        idList.add(3);
        idList.add(5);
        //3.调用Mybatis plus的批量查询方法
        List<User> userList=mapper.selectBatchIds(idList);
        //4.遍历输出结果
        for(User user:userList){
            System.out.println(user);
        }
    }

}

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值