java MyBatis-plus组件集成
Posted guxiaohai_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java MyBatis-plus组件集成相关的知识,希望对你有一定的参考价值。
一:简介
MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
mybatis-plus中包含BaseMapper,Iservice两个接口和ServiceImpl类,BaseMapper 针对dao层的方法封装 CRUD,IService 针对业务逻辑层的封装,需要指定Dao层类和对应的实体类,是在BaseMapper基础上的加强,ServiceImpl 针对业务逻辑层的实现
二:集成mybatis-plus
- 引入pom.xml文件包
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--mybatis-generator-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
- application启动容器添加注解:
@MapperScan(“com…省略地址…mapper”)数据层路径地址 - yml文件添加xml路径地址
#mybatis-plus集成
mybatis-plus:
mapper-locations: classpath:com/..省略地址../mapper/*.xml
- 添加entity类
@TableName:表名
@TableId:主键。type = 主键类型IdType.AUTO-数据库ID自增
@TableField:属性。value = 表字段,exist = 是否为数据库属性true-是 false-否
@Data
@TableName(value = "table")
public class TestEntity{
//主键id
@TableId(value = "id",type = IdType.AUTO)
private int id;
private String name;
@TableField(value = "device_ip",exist = true)
private String code;
@TableField(exist = false)
private int codeValue;
@TableField(exist = false)
private int logicState;
}
- 创建Mapper接口,继承BaseMapper实现
public interface TestMapper extends BaseMapper<TestEntity> {
}
- 创建业务接口,集成IService实现
public interface TestService extends IService<TestEntity> {
void getInfo(Map<String,Object> map);
}
- 实现业务,调用数据
@Service
public class TestServiceImpl extends ServiceImpl<TestMapper ,TestEntity> implements TestService {
@Autowired
private TestMapper testMapper;
@Override
public void getInfo(Map<String, Object> map) {
/****************自行从数据库拿取数据,逻辑处理*****************/
List<TestEntity> list = testMapper.selectList(null);
/**OR**/
//List<TestEntity> list = this.baseMapper.selectList(null);
System.out.println(list);
}
}
备注:mybatis-plus BaseMapper 封装如下方法:
public interface BaseMapper<T> extends Mapper<T> {
int insert(T entity);
int deleteById(Serializable id);
int deleteByMap(@Param("cm") Map<String, Object> columnMap);
int delete(@Param("ew") Wrapper<T> wrapper);
int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
int updateById(@Param("et") T entity);
int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
T selectById(Serializable id);
List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
T selectOne(@Param("ew") Wrapper<T> queryWrapper);
Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);
List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);
List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);
List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);
IPage<T> selectPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
}
以上是关于java MyBatis-plus组件集成的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot 集成MyBatis-Plus提示反序列化异常:cannot deserialize from Object value (no delegate- or property-bas
264.Spring Boot MyBatis集成MyBatis-Plus
SpringCloud微服务架构搭建--Mybatis-Plus