1.applicationComtext.xml配置
2.pom.xml配置
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
<!--ORM框架-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<!--log4j日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--log4j接口层-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.0-alpha1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>2.0.0-alpha1</version>
</dependency>
<!--aop联盟-->
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<!--Mybatis整合Spring-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.4</version>
</dependency>
<!--Mysql驱动程序-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<!--连接池-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<!--开启事务支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<!--开启Spring对jdbc支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<!--spring测试支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
<!--jstl支持-->
把dao下的映射文件也让maven识别并且编译
<finalName>SpringIntegrateMyBatis</finalName>
<plugins>
<!--为了保证包目录下的配置文件在编译后能够发布到执行目录,需要指定编译后生成的文件内容
不过不这样指定,maven认为src/main/java目录下的是java源文件。而xml文件他是不会管的,所以
需要指定xml也被编译然后发布到执行目录
-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
3.第一坑
如图红字,如果两边都指定了,会报如下的错误
Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.zero.mapper.BooksMapper.BaseResultMap
解决方法,只选择一处指定映射文件所在位置即可
4.第二坑
好不容易把上面的问题解决了,结果连接数据库的时候你告诉我连不上?
Access denied for user 'admin'@'localhost' (using password: YES)
出现原因,在属性文件中尽量不要使用username,因为系统中也有个username属性,在取值的时候,直接取成系统的username了
emsp;解决方案,不要将属性文件的用户名设置成username就好
5.第三坑
本来是测试MyBatis缓存的,结果每次配置完,测试就报如下错误
org.apache.ibatis.cache.CacheException: Error serializing object. Cause: java.io.NotSerializableException:
错误原因,对应的pojo类没有实现序列化接口,而二级缓存技术是需要使用序列化技术的,所以对应的类实现序列化接口即可
如果同时在mybatis配置文件中和spring配置文件中指定了