MyBatisplus CRUD 就是增删改查
@SpringBootTest
@RunWith(SpringRunner.class)
class UserMapperTest {
@Autowired
private UserMapper userMapper;
/**
* 根据id查询
*/
@Test
public void testSelectById() {
User user = userMapper.selectById(1L);
System.out.println(user);
}
/**
* 添加
*/
@Test
public void testInsert() {
User user = new User();
//user.setId(6L);
user.setUserName("itcast");
user.setPassword("itheima");
int count = userMapper.insert(user);
System.out.println(count);
}
/**
* 删除
*/
@Test
public void testDelete() {
/*
//1. 根据id删除
int count = userMapper.deleteById(8L);
*/
/*
//2. 根据id集合批量删除
List ids = new ArrayList();
ids.add(6);
ids.add(7);
userMapper.deleteBatchIds(ids);
*/
//3. 根据map构造条件,删除
Map<String, Object> map = new HashMap<>();
//delete from tb_user where user_name = ? and age = ?
map.put("user_name","zhangsan");
map.put("age","18");
userMapper.deleteByMap(map);
}
/**
* 修改
*/
@Test
public void testUpdateById() {
User user = new User();
user.setId(2L);
user.setPassword("1111111");
int count = userMapper.updateById(user);
}
/**
* 分页查询:
* 1. 当前页码:currentPage
* 2. 每页显示条数:size
*
* 注意:使用mp的分页要设置一个拦截器!!!
*/
@Test
public void testSelectPage() {
int current = 1;//当前页码
int size = 2;//每页显示条数
IPage<User> page = new Page(current,size);
userMapper.selectPage(page,null);
List<User> records = page.getRecords();//当前页的数据
long pages = page.getPages();//总页数 2
long total = page.getTotal();//总记录数 4
System.out.println(records);
System.out.println(pages);
System.out.println(total);
}
}
/**
* 实体类的属性名和数据库的字段名 自动映射:
* 1. 名称一样
* 2. 数据库字段使用_分割,实体类属性名使用驼峰名称
*/
//@TableName("tb_user")
@Data
public class User {
//设置id生成策略:AUTO 数据库自增
//@TableId(type = IdType.AUTO)
private Long id;
//@TableField("user_name")
private String userName;
private String password;
private String name;
private Integer age;
private String email;
//不希望该值存入数据库
//@TableField(exist = false)
//private String info;
}
在springboot配置前缀
就可以不用写 @TableName注解,但类的名称要与数据库表名一致
mybatis-plus:
global-config:
db-config:
# 表名前缀
table-prefix: tb_
# id生成策略 数据库自增
id-type: auto
configuration:
# 日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
这是用配置文件,做的全局配置
进行分页查询,要使用分页插件,对分页插件配置。否则分页插件不会生效,这样就会去做查询全局。
@Configuration
public class PageConfig {
/**
* 3.4.0之前的版本用这个
* @return
*/
/* @Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}*/
/**
* 3.4.0之后提供的拦截器的配置方式
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}