JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

MyBatis 入门教程-配置MyBatis XML映射文件

wys521 2024-12-26 13:19:00 精选教程 28 ℃ 0 评论

简介

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,循环对接口进行如下的操作

  1. 判断接口对应的名称空间是否存在,如果存在就抛出异常,不存在则进行后续的操作。
  2. 加载接口对应的XML文件,将接口的全限定名都转换为路径。
  3. 处理接口中对应的注解方法。

因为我们创建的XML文件与接口完全是满足第二个条件的,所以直接配置对应的包路径就能扫描到对应包下的接口和XML映射文件。这样为开发者节省了很多的时间和精力。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表