mybatis配置文档标签:入门教程-配置MyBatis
mybatis配置文档标签:入门教程-配置MyBatis创建完成之后,需要在mybatis-config.xml配置文件中对mapper进行配置。<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis.mapper.SysUserMapper"> </mapper>这里需要注意的是<mapper>标签对应的namespace属性。当Mapper文件与接口文件进
简介MyBatis之所以强大之处就在于它的对象关系映射ORM,这也是MyBatis的精华所在。由于它的映射语句非常强大,映射器对应的XML文件也就相对来说比较简单。比起jdbc操作来说真的是差距不是一个数量级。
而MyBatis3.0相对于MyBatis2.0来说最大的变化就是支持用接口来进行方法调用。
在之前的时候使用SqlSession通过名称空间来调用MyBatis方法的时候,首先需要用到名称空间和方法ID组成的字符串来调用对应的方法。当传入的查询参数多于1个的时候,需要将参数进行对象类型封装。通过封装好的对象来进行参数传递,这样对于两三个参数的使用场景就显得有点不友好。
而采用接口调用的方式就会方便很多,MyBatis使用Java的动态代理机制,可以直接通过接口来进行对应方法的调用,不需要为接口实现具体的实现类,更不需要在实现类中使用SqlSession 确定名称空间。
另外就是在多个参数的情况下,可以通过@Param 注解的方式来进行参数传入,就不需要再为两三个参数来构造一个对象出来。在与Spring整合之后,更是可以自动的扫描到指定路径下的所有的Mapper接口,可以直接将接口注入到需要使用的地方,极大的方便的开发人员的开发。
具体实现在之前创建的项目路径下新建对应SysUserMapper.xml 的XML文件,并且在对应的src/main/java下创建对应的SysUserMapper对应的映射接口文件。
//Mapper对应的映射接口
public interface SysUserMapper {
}
对应的XML映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.mapper.SysUserMapper">
</mapper>
这里需要注意的是<mapper>标签对应的namespace属性。当Mapper文件与接口文件进行关联的时候,名称空间namespace属性值就需要进行配置了。例如上面配置文件中的com.mybatis.mapper.SysUserMapper配置。MyBatis的内部就可以通过这个值将XML与接口进行映射。
创建完成之后,需要在mybatis-config.xml配置文件中对mapper进行配置。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="com.mybatis.model"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/BookMapper.xml"/>
<mapper resource="mapper/SysUserMapper.xml"/>
</mappers>
</configuration>
当然这种方式看上去比较麻烦,也可以使用如下的方式进行配置
<mappers>
<package name="com.mybatis.mapper/>
</mappers>
这种方式表示查找对应包下的所有的接口Mapper,循环对接口进行如下的操作
- 判断接口对应的名称空间是否存在,如果存在就抛出异常,不存在则进行后续的操作。
- 加载接口对应的XML文件,将接口的全限定名都转换为路径。
- 处理接口中对应的注解方法。
因为我们创建的XML文件与接口完全是满足第二个条件的,所以直接配置对应的包路径就能扫描到对应包下的接口和XML映射文件。这样为开发者节省了很多的时间和精力。