开始前准备:

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

SQL Server Management Studio Management Studio 19连接mysql_spring boot

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

SQL Server Management Studio Management Studio 19连接mysql_spring boot_02

三、pom依赖

SQL Server Management Studio Management Studio 19连接mysql_mybatis_03

四、yaml文件

SQL Server Management Studio Management Studio 19连接mysql_数据库_04

五、实体类

SQL Server Management Studio Management Studio 19连接mysql_mybatis_05

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类

SQL Server Management Studio Management Studio 19连接mysql_java_06

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启动器类

SQL Server Management Studio Management Studio 19连接mysql_java_07

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);
        }
    }

}

SQL Server Management Studio Management Studio 19连接mysql_数据库_08


SQL Server Management Studio Management Studio 19连接mysql_spring boot_09