一篇文章带你学习Mybatis-Plus(新手入门)攻略
1. 什么是Mybatis-Plus
Mybatis-Plus是Mybatis的增强工具,提供了很多实用的功能,比如单表的基本CURD操作、分页查询、条件构造器、代码生成器等等。
2. 如何使用Mybatis-Plus
2.1 引入Mybatis-Plus依赖
在pom.xml中引入以下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.7.1</version>
</dependency>
2.2 配置Mybatis-Plus
在application.yml中进行Mybatis-Plus的配置,例如:
mybatis-plus:
# mapper/xml映射文件地址
mapper-locations: classpath:mapper/*.xml
# 主键生成策略
global-config:
db-config:
id-type: auto
2.3 编写实体类
Mybatis-Plus的实体类需要继承Model类或者实现Serializable接口,同时使用注解@TableField指定数据库列名和实体类属性名的映射关系,例如:
@Data
public class User extends Model<User> {
@TableId(type = IdType.AUTO)
private Long id;
@TableField(value = "username")
private String name;
private Integer age;
private String email;
}
2.4 编写Mapper接口和Mapper映射文件
Mybatis-Plus提供了BaseMapper接口,只需要继承它即可继承通用的CRUD操作,例如:
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
对应的Mapper映射文件可以使用Mybatis-Plus自动生成,也可以自己手写,例如:
<mapper namespace="com.example.demo.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.example.demo.entity.User">
<id column="id" property="id" />
<result column="username" property="name" />
<result column="age" property="age" />
<result column="email" property="email" />
</resultMap>
<sql id="queryUser">
select id, username, age, email from user
</sql>
<select id="selectById" resultMap="BaseResultMap">
select * from user where id = #{id}
</select>
<select id="selectList" resultMap="BaseResultMap">
<include refid="queryUser" />
<where>
<if test="name != null">
and username like concat('%',#{name},'%')
</if>
</where>
</select>
<insert id="insert" parameterType="com.example.demo.entity.User">
insert into user (username, age, email)
values (#{name}, #{age}, #{email})
</insert>
<update id="update" parameterType="com.example.demo.entity.User">
update user set username = #{name}, age = #{age}, email = #{email}
where id = #{id}
</update>
<delete id="deleteById" parameterType="java.lang.Long">
delete from user where id = #{id}
</delete>
</mapper>
2.5 编写Service/ServiceImpl
在Service层调用Mapper层的方法,构造查询条件并返回结果,例如:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public List<User> getUserList(String name) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("username", name);
return list(queryWrapper);
}
}
3. Mybatis-Plus的使用示例
3.1 分页查询
Page<User> page = new Page<>(1, 10);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 18).orderByDesc("id");
IPage<User> userIPage = userMapper.selectPage(page, queryWrapper);
3.2 插入数据并返回主键ID
User user = new User();
user.setName("zhangsan");
user.setAge(18);
user.setEmail("zhangsan@qq.com");
userMapper.insert(user);
Long id = user.getId();
4. 总结
Mybatis-Plus是一个非常实用的Mybatis增强工具,可以大大提高开发效率。本文简单介绍了Mybatis-Plus的使用步骤和示例,但是Mybatis-Plus提供的功能远不止这些,可以结合官方文档进行深入学习。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇文章带你学习Mybatis-Plus(新手入门) - Python技术站