mybatis-plus入门学习-BaseMapper
- - 掘金后端入门使用BaseMapper完成增删改查. 根据数据库表制作相应实体类. public interface UserMapper extends BaseMapper {
//这里什么都不用写
}
复制代码. 由于BaseMapper已经集成了基础的增删改查方法,这里对应的mapper.xml也是不用写的.
具体教程参考官网文档: baomidou.com/
根据数据库表制作相应实体类
@TableName(value = "user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String name;
private String password;
private String username;
// 省略set,get
}
复制代码
创建对应mapper类
public interface UserMapper extends BaseMapper<User> {
//这里什么都不用写
}
复制代码
由于BaseMapper已经集成了基础的增删改查方法,这里对应的mapper.xml也是不用写的
添加关于mapper包的注册
@SpringBootApplication
@MapperScan("com.hyx.mybatisplusdemo.mapper")
public class MybatisplusdemoApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisplusdemoApplication.class, args);
}
}
复制代码
修改配置文件
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
复制代码
测试类
@SpringBootTest
class MybatisplusdemoApplicationTests {
@Autowired
UserMapper userMapper;
@Test
void contextLoads() {
User user = userMapper.selectById(7l);
userMapper.deleteById(user);
System.out.println(user);
}
}
复制代码
如果要自定义一些增删改查方法,可以在配置类中添加:
##mybatis-plus mapper xml 文件地址
mybatis-plus.mapper-locations= classpath*:mapper/*Mapper.xml
##mybatis-plus type-aliases 文件地址
mybatis-plus.type-aliases-package= com.hyx.mybatisplusdemo.entity
复制代码
然后就与mybatis一样,创建对应的xml文件,去实现相应的方法就可以了
// 插入一条记录
int insert(T entity);
复制代码
// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map columnMap);
复制代码
// 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper updateWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
复制代码
// 根据 ID 查询 T selectById(Serializable id); // 根据 entity 条件,查询一条记录 T selectOne(@Param(Constants.WRAPPER) Wrapper queryWrapper); // 查询(根据ID 批量查询) List selectBatchIds(@Param(Constants.COLLECTION) Collection idList); // 根据 entity 条件,查询全部记录 List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper); // 查询(根据 columnMap 条件) List selectByMap(@Param(Constants.COLUMN_MAP) Map columnMap); // 根据 Wrapper 条件,查询全部记录 List
类型 | 参数名 | 描述 |
---|---|---|
Wrapper | wrapper | 实体对象封装操作类(可以为 null) |
Collection | idList | 主键ID列表(不能为 null 以及 empty) |
Serializable | id | 主键ID |
Map | columnMap | 表字段 map 对象 |
IPage | page | 分页查询条件(可以为 RowBounds.DEFAULT) |