问题1、@Mapper注解标红:Cannot resolve symbol 'Mapper'
原因及解决方法:mybatis-spring-boot-starter使用了1.3.2版本,调整到2.1.1版本后解决(测试过1.2.0版本也OK),依赖如下:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
问题2、生成的mapper.xml文件中有重复节点:id="BaseResultMap"
原因及解决方法:生成器将登陆到的mysql中同名的表都生成了,导致重复;修改生成器配置文件中的JDBC参数,增加nullCatalogMeansCurrent=true,代码如下:
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.0.100:3306/test?nullCatalogMeansCurrent=true"
userId="user"
password="pwd">
</jdbcConnection>
问题3、运行期Mapper类自动装载失败,比对接口类和xml文件,能对得上
原因及解决方法:mapper接口类和xml都生成到java目录下了,程序build的时候target相应目录下未生成对应的mapper.xml文件;在pom文件的build节点中增加配置,使xml生成,代码如下:
<resources>
<!-- mapper.xml文件在java目录下 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>