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

  1. 引入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>
  1. application启动容器添加注解:
    @MapperScan(“com…省略地址…mapper”)数据层路径地址
  2. yml文件添加xml路径地址
#mybatis-plus集成
mybatis-plus:
  mapper-locations: classpath:com/..省略地址../mapper/*.xml
  1. 添加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;
}
  1. 创建Mapper接口,继承BaseMapper实现
public interface TestMapper extends BaseMapper<TestEntity> {
}
  1. 创建业务接口,集成IService实现
public interface TestService extends IService<TestEntity> {

    void getInfo(Map<String,Object> map);
}
  1. 实现业务,调用数据
@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

MyBatis-Plus 集成动态多数据源

SpringCloud微服务架构搭建--Mybatis-Plus

SpringBoot使用·下篇(SpringBoot集成MyBatis+日志打印+MyBatis-plus)

SpringBoot使用·下篇(SpringBoot集成MyBatis+日志打印+MyBatis-plus)