Для конкретных руководств обратитесь к официальной документации веб-сайта:baomidou.com/
Начало работы Использование BaseMapper для добавления, удаления и модификации
Создайте соответствующие классы сущностей на основе таблиц базы данных
@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
}
Создайте соответствующий класс картографа
public interface UserMapper extends BaseMapper<User> {
//这里什么都不用写
}
Поскольку BaseMapper интегрировал базовый метод добавления, удаления, модификации и запроса, соответствующий файл mapper.xml здесь писать не нужно.
Добавить регистрацию о пакете картографа
@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);
}
}
Если вы хотите настроить некоторые методы CRUD, вы можете добавить их в класс конфигурации:
##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-файл и реализуйте соответствующий метод.
Подробное объяснение каждого метода BaseMapper
Insert
// 插入一条记录
int insert(T entity);
Delete
// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
Update
// 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
Select
// 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
тип | имя параметра | описывать |
---|---|---|
Wrapper <T> |
wrapper | Объект сущности инкапсулирует класс операции (может быть нулевым) |
Collection<? extends Serializable> |
idList | Список идентификаторов первичного ключа (не может быть нулевым и пустым) |
Serializable |
id | идентификатор первичного ключа |
Map<String, Object> |
columnMap | объект карты поля таблицы |
IPage<T> |
page | Условие запроса пейджинга (может быть RowBounds.DEFAULT) |