最近在学习mybatis,在网上查阅资料,并按照别人的范例来测试,总会出一些错误,这里把配置过程中的一些注意事项梳理一下。
一、导包(用eclipse开发)
1、如果你新建的是普通的project,需要在工程目录下,新建一个文件夹(一般为lib),然后需要手动导包,具体操作是:选中包右键-Build Path-add to Build Path。之前的文件夹不能删除,因为它实际上加载的是这些包的路径。
2、如果你新建的是web工程,只需要把相关包放到WEB-INF/lib 中即可,它会自动导包,同样lib里的包不能删除。
二、XML文件配置
1、该配置文件名可以自定义,放置的路径也可以自定义,但是如果你不是放在src的根路径下,比如放在src/config/mybatis.xml,在创建SqlSessionFactory实例时,Resources.getResourceAsReader("config/mybatis.xml"),config前不能加“/”,如果放在src根路径下,这里直接写文件名即可。
2、配置文件里配置项目是有先后顺序的,依次是:properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,plugins,environments,databaseIdProvider,mappers,那个选项不配置,它的位置空出来,但顺序必须遵循,否则会报错。
3、properties选项,可导入外部以properties结尾的配置文件。通常会将数据库的连接信息放在该配置文件里,这时在配置dataSource时,value=“${driver}”,这种形式,此处driver对应的就是配置文件中driver = com.mysql.jdbc.Driver
4、在配置mapper时,有几种方式,分别是resource、url、class、package
resource形式:
<mappers>
<mapper resource="com/tiantian/mybatis/model/BlogMapper.xml"/>
</mappers>
这个路径是你xml映射文件的路径包名+文件名。
url形式:
<mappers>
<mapper url="file:///var/mappers/BlogMapper.xml"/>
</mappers>
这个路径对应的是网络上了某个文件,注意file:// 前缀 +路径+文件名
class形式:
<mappers>
<mapper class="org.mybatis.builder.BlogMapper"/>
</mappers>
这个class实际上是接口,写的是接口的全名。
package形式:
<mappers>
<package name="org.mybatis.builder"/>
</mappers>
5、实际项目中采用最多的是面向接口编程,也就是一个接口对应一个XML映射文件,如果让接口和映射文件对应呢?答案是XML映射文件中的mapper namespace="com.mybatis.inter.IUserOperation",这个namespace中一定是接口的全名,不能是别名、简名,否则运行时会报错。一般我们会把接口名和映射文件名写成一样的,而且在同一个包下,所以感觉namespace就是xml文件的全名。