下面我详细讲解一下“mybatis-plus中BaseMapper入门使用”的完整攻略。
什么是mybatis-plus
mybatis-plus是mybatis的增强工具,它可以让我们更方便、更快捷地开发mybatis项目。其中最为常用的模块就是BaseMapper,它提供了单表CRUD的基本SQL,减少了我们重复写SQL的工作量。
BaseMapper的使用步骤
1. 引入mybatis-plus依赖
在pom.xml文件中添加以下依赖:
<!-- 引入mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.7.1</version>
</dependency>
2. 创建实体类和Mapper
假设我们要操作的表为user,我们需要创建一个User实体类和一个UserMapper接口,如下所示:
public class User {
private Long id;
private String username;
private String password;
//getters、setters省略
}
public interface UserMapper extends BaseMapper<User> {
}
其中,User实体类中的属性与数据库表中的字段一一对应。
3. 使用BaseMapper进行CRUD操作
BaseMapper提供了许多通用的CRUD方法,例如:
- insert:插入一条记录
- updateById:根据主键更新一条记录
- selectById:根据主键查询一条记录
- deleteById:根据主键删除一条记录
- selectList:查询列表
下面是一些示例:
1. 插入一条记录
User user = new User();
user.setUsername("张三");
user.setPassword("123456");
userMapper.insert(user);
2. 根据主键更新一条记录
User user = new User();
user.setId(1L);
user.setUsername("李四");
userMapper.updateById(user);
3. 根据主键查询一条记录
User user = userMapper.selectById(1L);
4. 根据主键删除一条记录
userMapper.deleteById(1L);
5. 查询列表
List<User> userList = userMapper.selectList(null);
其中,selectList方法中的参数为Wrapper,如果我们不需要进行条件查询,可以传入null。
示例
假设我们需要查询所有年龄大于18岁的用户,可以按照以下步骤执行:
1. 修改实体类
在User实体类中添加一个age属性:
public class User {
private Long id;
private String username;
private String password;
private Integer age;
//getters、setters省略
}
2. 修改Mapper
在UserMapper接口中添加一个selectByAge方法:
public interface UserMapper extends BaseMapper<User> {
@Select("select * from user where age > #{age}")
List<User> selectByAge(Integer age);
}
注意,我们在这里使用了注解的方式写SQL,也可以使用XML的方式。
3. 使用selectByAge方法查询数据
List<User> userList = userMapper.selectByAge(18);
常见问题
1. 为什么BaseMapper的方法不能满足需求?
BaseMapper只提供了基本的CRUD方法,如果需要做到更复杂的操作,可以自定义Mapper接口并在XML中编写SQL语句。
2. @MapperScan注解报错?
在配置类中添加以下注解:
@MapperScan("com.example.demo.mapper")
其中,com.example.demo.mapper是你的Mapper接口所在的包路径。
3. Mybatis-plus中的Wrapper是什么?
Wrapper是mybatis-plus提供的条件构造器,我们可以通过Wrapper动态生成SQL语句,满足各种复杂的查询需求。具体可以参考mybatis-plus官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis-plus中BaseMapper入门使用 - Python技术站