1.什么是mybtais-plus
mybatis的升级版,对jdbc进行了封装,更加方便地操作数据库,属于持久化(数据存储到硬盘)框架。
ssm框架中m指的就是mybatis框架(springmvc、spring/struts2,spring)
ssh框架中h指的就是hibernate框架
2.mp通过xml实现增删改查
2.1 新增Dao类
public interface UserDao {
List<UserEntity> queryUserPage(UserEntity userEntity);
Integer insertUser(UserEntity userEntity);
}
2.2 新增Dao对应的xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demy.User.dao.UserDao">
<select id="queryUserPage" parameterType="com.demy.User.entity.UserEntity"
resultType="com.demy.User.entity.UserEntity">
select * from db_user
where 1 = 1
<if test="username != null and username != ''">
and username like concat('%',#{username},'%')
</if>
<if test="name != null and name != ''">
and name like concat('%',#{name},'%')
</if>
limit #{currentSize}, #{pageSize}
</select>
<insert id="insertUser" parameterType="com.demy.User.entity.UserEntity">
insert into db_user(username,password,name,created_by,created_date)
values(#{username},#{password},#{name},#{name},now()
)
</insert>
</mapper>
2.3 Dao与xml的关系
3.mp特有的增删改查
mybatis-plus相比mybatis新增了特有的增删改查,支持不写sql进行查询(可以不用写xml文件)
3.1 实体类需要加上相关注解
实体类需要加上特殊注解
@TableName 表示该类具有某个表的映射关系(表的字段在类中都能找到对应的成员变量)
@TableId 标识主键
@TableField(exist = false) 表示该成员变量不是表的字段
@TableName("db_user")
public class UserEntity implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
private String username;
private String name;
private String password;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createdDate;
private String createdBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifiedDate;
private String modifiedBy;
@TableField(exist = false)
private int currentPage;
@TableField(exist = false)
private int pageSize;
@TableField(exist = false)
private int currentSize;
// 省略get/set方法
}
3.2 Dao接口需要继承BaseMapper
public interface UserDao extends BaseMapper<UserEntity> {
}
3.3 直接通过dao进行使用即可
UserEntity userEntity = userDao.selectById(id);
userDao.updateById(newUserEntity);
4 总结
简单查询、单表查询可用方式3,复杂查询应该用方式2