qshpeng 2011-03-12
这两个版本支持通配符设置配置文件了
spring的配置文件中设置如下:
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<propertyname="configLocation"value="ibatis/config/SqlMapConfig.xml"/>
<propertyname="mappingLocations"value="ibatis/sqlmap/*.xml"/>
<propertyname="dataSource"ref="dataSource"/>
</bean>ibatis的配置文件SqlMapConfig.xml中
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true"
classInfoCacheEnabled="true"lazyLoadingEnabled="false"maxRequests="150"
maxSessions="100"maxTransactions="10"useStatementNamespaces="true"/>
</sqlMapConfig>但是启动的时候还是会报一个异常,SqlMapConfig.xml中必须满足
(properties?, settings?, resultObjectFactory?, typeAlias*, typeHandler*, transactionManager?, sqlMap+)+
的约束,这个一看就知道是dtd里的问题,所以就在ibatis的jar包,找到com.ibatis.sqlmap.engine.builder.xml下的sql-map-config-2.dtd
找到上面那句话,改成
(properties?, settings?, resultObjectFactory?, typeAlias*, typeHandler*, transactionManager?, sqlMap?)+
就可以了
如:对于sql语句order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id"。