MyBatisPlus 配置

目录结构如下:

- com.algol.common
    - config
        - MybatisPlusConfig.java
    - dao.mmd
        - entity
            - TabOminCmCcStationplat.java
        - mapper
            - TabOminCmCcStationplatMapper.java
            - TabOminCmCcStationplatMapper.xml
        -service
            - impl
                - TabOminCmCcStationplatServiceImpl.java
            - ITabOminCmCcStationplatService.java
    

1、 @MapperScan 配置扫描Mapper接口,例如:

@Configuration
@MapperScan(basePackages = {
        "com.algol.common.dao.mmd.mapper"
})
public class MybatisPlusConfig {
}

2、mapper-locations 配置xml扫描,例如:

mybatis-plus:
  mapper-locations: classpath:com/algol/common/dao/mmd/mapper/*.xml
---
  type-aliases-package: com.algol.common.dao.mmd.entity

注意:该配置项从resource目录下开始扫描,如果xml文件生成在工程resource目录下,则只需要配置为: classpath:mapper/*.xml
如果xml文件生成在src目录下,则还需要在pom文件中将相应src下目录映射到resource目录下:

<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>

mapper-locations则配置为:

mybatis-plus:
  mapper-locations: classpath:com/algol/common/dao/mmd/mapper/*.xml

3、type-aliases-package 配置扫描实体类:

mybatis-plus:
  type-aliases-package: com.algol.common.dao.mmd.entity

4、@Mapper 可以给mapper接口自动生成一个实现类,让spring对mapper接口的bean进行管理,并且可以省略去写复杂的xml文件。

如果sql写在xml文件中,则无需使用@Mapper 注解,因为xml文件中已经定义了命名空间映射。如果sql写在注解里,则必须使用@Mapper 注解,例如:

@DS("mmd")
@Mapper
public interface TabOminCmCcStationplatMapper extends BaseMapper<TabOminCmCcStationplat> {

    @Select("select * from TAB_OMIN_CM_CC_STATIONPLAT where C_INDEXNBR = #{iiiii}")
    TabOminCmCcStationplat findById(String iiiii);

}

可以默认将@Mapper 注解加上,保持一个好的习惯,反正也没什么坏处。而好处是,可以混合使用,简单的sql基于注解,复杂的sql基于xml。

5、@Param 的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中。

建议传参时加上该注解,以保证多参数传入时,可能会导致不可预料的出错,例如:

TabOminCmCcStationplat findById(@Param(value = "iiiii") String iiiii);

6、IDEA里安装 MyBatisPlus 插件,可以大大提高开发效率,该插件可以方便在xml和mapper间来回自由跳转,同时支持mapper里新加接口时,xml里可以自动生成。

原文地址:https://www.cnblogs.com/unique1319/p/13868157.html