mapperLocations屬性通配符的使用
示例:
- <bean?id="sqlSessionFactory"?class="org.mybatis.spring.SqlSessionFactoryBean">??
- ????<property?name="dataSource"?ref="dataSource"?/>??
- ????<property?name="configLocation"?value="classpath:sqlMapConfig.xml"></property>??
- ????<property?name="mapperLocations"?value="classpath*:com/huaxin/**/*Mapper.xml"></property>??
- </bean>??
注意點:在classpath后面的*必不可少,缺少型號的話后面的通配符不起作用。
? ? ? ? ? ? ? ? **表示可以表示任意多級目錄,如:上述配置可以查到【com/huaxin/framework/system/dao/UserDaoMapper.xml】
? ? ? ? ? ? ? ? *表示多個任意字符
注意:value="classpath*:com/huaxin/**/*Mapper.xml" ,.xml前面必須有字母.
如果寫成?value="classpath*:com/huaxin/**/*.xml" 會報錯。
? ? ? ? ? ? ? ?缺少classpath后面的*會報以下的錯誤:
- org.mybatis.spring.MyBatisSystemException:?nested?exception?is?org.apache.ibatis.exceptions.PersistenceException:???
- ###?Error?querying?database.??Cause:?java.lang.IllegalArgumentException:?Mapped?Statements?collection?does?not?contain?value?for?framework.system.dao.UserDao.getNextUserId_MySQL??
- ###?Cause:?java.lang.IllegalArgumentException:?Mapped?Statements?collection?does?not?contain?value?for?framework.system.dao.UserDao.getNextUserId_MySQL??
- ????at?org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)??
- ????at?org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371)??
- ????at?com.sun.proxy.$Proxy18.selectOne(Unknown?Source)??
- ????at?org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:163)??
- ????at?com.huaxin.framework.core.dao.impl.BaseDaoImpl.selectOne(BaseDaoImpl.java:298)??
- ????at?com.huaxin.framework.system.dao.impl.UserDaoImpl.getNextUserId(UserDaoImpl.java:41)??