如果使用Mybatis的配置文件结合Spring启动的时候报连接超时错误,原因是在加载mybatis的配置文件并校验时,并不是走的默认通道,而是自己解析xml配置文件,并根据配置文件的头信息,去网上搜索dtd文件,可想而知,肯定会报Connection timed out错误!
所以,在XML Catalog里添加本地DTD文件也并不管用,解决办法(如果在项目发布时,记得把这个路径改为服务器环境下的dtd文件地址,切记!)如下:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!--
- <!DOCTYPE configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- -->
- <!DOCTYPE configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "file:/E:/jar/mybatis-3.2.6/mybatis-3-config.dtd">
- <configuration>
- <settings>
- <!-- 全局映射器启用缓存 -->
- <setting name="cacheEnabled" value="true" />
- <!-- 查询时,关闭关联对象即时加载以提高性能 -->
- <setting name="lazyLoadingEnabled" value="true" />
- <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能 -->
- <setting name="aggressiveLazyLoading" value="false" />
- <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
- <setting name="multipleResultSetsEnabled" value="true" />
- <!-- 允许使用列标签代替列名 -->
- <setting name="useColumnLabel" value="true" />
- <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
- <setting name="useGeneratedKeys" value="true" />
- <!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
- <setting name="autoMappingBehavior" value="FULL" />
- <!-- 对于批量更新操作缓存SQL以提高性能 -->
- <setting name="defaultExecutorType" value="BATCH" />
- <!-- 数据库超过25000秒仍未响应则超时 -->
- <setting name="defaultStatementTimeout" value="25000" />
- </settings>
- <!-- 类型别名 -->
- <typeAliases>
- <typeAlias alias="User" type="com.study.model.User"/>
- </typeAliases>
- <!-- 非注解的sql映射文件配置,如果使用mybatis注解,该mapper无需配置,但是如果mybatis注解中包含@resultMap注解,则mapper必须配置,给resultMap注解使用 -->
- <mappers>
- <mapper resource="com/study/mapper/UserMapper.xml" />
- </mappers>
- </configuration>
装载自:http://coffee-yan.iteye.com/blog/2175449