🔥【mybatis-mp】ORM 框架 之 单 Mapper 模式,为你节省更多的内存空间,🔥爆!!!

150 阅读1分钟

为什么用单 Mapper 模式?

1:更省事,不需要一个个写 Mapper

2:更省内存,如果你有 1000 个表,那可以省 1000 个类以及 1000 * N 个方法,可能可多;对于 mybatis 来说,能更快的匹配到对应的执行方法

1:引入 maven 依赖

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>cn.mybatis-mp</groupId>
            <artifactId>mybatis-mp-spring-boot-parent</artifactId>
            <version>1.7.7-RC5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>cn.mybatis-mp</groupId>
        <artifactId>mybatis-mp-spring-boot-starter</artifactId>
    </dependency>
</dependencies>

2:配置 mybatis-mp 启动项

@MapperScan(basePackageClasses = BasicMapper.class , annotationClass = Mapper.class)

3:增删改查,丝滑流畅,简单方便

引入 Mapper

@Autowired
private BasicMapper basicMapper;

3.1:查询

AppVersion appVersion = basicMapper.getById(AppVersion.class , 1);

List<AppVersion> list= QueryChain.of(basicMapper,AppVersion.class)
    .eq(AppVersion::getId,1)
    .like(AppVersion::getName,"xx")
    .list();

Pager<AppVersion> page= QueryChain.of(basicMapper,AppVersion.class)
    .eq(AppVersion::getId,1)
    .like(AppVersion::getName,"xx")
    .paging(Pager.of(1,10));

3.2:删除

basicMapper.delete(appVersion);

basicMapper.deleteById(AppVersion.class , 1);

basicMapper.delete(AppVersion.class, where -> where.eq(AppVersion::getId,1))

3.3:改

basicMapper.update(appVersion)

3.4:新增

basicMapper.save(appVersion)

3.5:如果想在 XML 里写也很简单

<mapper namespace="cn.mybatis.mp.core.mybatis.mapper.BasicMapper">
    <select id="SysRole:basicXmlPaging" resultType="com.mybatis.mp.core.test.DO.SysRole">
        select *
        from sys_role
        where id >= #{id}
          and id &lt;= #{id2}
        order by id asc
    </select>
</mapper>

List<SysRole> list = sysRoleMapper.getBasicMapper().withSqlSession(".SysRole:basicXmlPaging", new HashMap() {{
      put("id", 1);
      put("id2", 2);
  }},(statement, params, sqlSession) -> {
      return sqlSession.selectList(statement, params);
});

​4: 其他还有很多很丰富的 api,请前往官网 mybatis-mp.cn