今天项目中用了一下typeHandler,报了一个莫名其妙的错误,说莫名其妙主要是因为相同的代码在另外一台机子上能够很好的运行,在我的机子上就会报org.xml.sax.SAXParseException: The content of element type “sqlMapConfig” must match “(properties?,settings?,resultObjectFactory?,ypeAlias*,typeHandler*,transactionManager?,sqlMap+)+”,仔细的检查配置无数遍依然没有结果,浪费了我很多的时间,于是就想在CSDN上与大家分享,少浪费大家的时间,我一开始的配置是这样的:
<sqlMapConfig>
<typeHandler jdbcType="VARCHAR" javaType="java.lang.String"
callback="net....StringTypeHandler" />
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" maxRequests="32" maxSessions="10"
maxTransactions="5" useStatementNamespaces="false" />
<sqlMap resource="net/.../sqlmap/SqlConfig.xml" />
</sqlMapConfig>
后来google了很多的文章,才找到答案,原来sqlMapConfig的配置是有顺序的,配置顺序properties?,settings?,
resultObjectFactory?ypeAlias*,typeHandler*,transactionManager?,sqlMap 。
后来改成这样
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" maxRequests="32" maxSessions="10"
maxTransactions="5" useStatementNamespaces="false" />
<typeHandler jdbcType="VARCHAR" javaType="java.lang.String"
callback="net....StringTypeHandler" />
<sqlMap resource="net/.../sqlmap/SqlConfig.xml" />
</sqlMapConfig>
问题得以解决。