开始前准备:
这是基于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);
}
}
}