使用mybatis,spring时,以前做东西的话感觉能运行就可以,有些地方就没注意,没去纠结,现在感觉要提升一下,所以拿出来,涉及源码的回答,就尽量说清楚(我暂时没去看源码)。
1.在spring文件中,指定configlocation的mybatis.xml文件路径问题,在web环境下为
WEB-INF/classes/mybatis.xml,在myelcipse测试的时候改成mybatis.xml,感觉有点繁琐,有没有自动获取路径的办法,根据当前文件的环境,我试用了classpath,没成功
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="WEB-INF/classes/mybatis.xml" ></property>
<property name="dataSource" ref="dataSource" />
</bean>
2.配置mybatis的时候,spring文件自动忽略mybatis.xml中environments标签内的元素,这是为什么呀,就算是为了在spring中配置数据源不冲突,那为什么不直接使用mybatis里面的呢?
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/helper?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
3.sqlsessiontemplet,这个类在mybatis里是没有的,在spring感觉是对sqlsessionFactory改写或者继承得到的,这个有什么作用?因为我看到有些配置中使用sqlsesiontemplet,去直接类似于sqlsession执行sql操作,这样的话为什么不直接去使用sqlsession?示例代码