目錄結構如下:
- 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里可以自動生成。