美文网首页
2020-04-05 mybatis加载映射文件的三种常见方式

2020-04-05 mybatis加载映射文件的三种常见方式

作者: 惜小八 | 来源:发表于2020-04-05 02:03 被阅读0次

转载自:https://www.jianshu.com/p/1b5b8043e7a2

1.三种方式

<?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>
    <!--配置数据库相关信息-->
    <properties resource="db.properties"/>

    <!--配置别名-->
    <typeAliases>
<!--        <typeAlias type="com.mybatis.model.User" alias="user"></typeAlias>-->

        <!--另外一种 引用包名 别名是类名首字母小写-->
        <package name="com.mybatis.model"/>
    </typeAliases>
    <!-- 配置mybatis的环境信息 -->
    <environments default="development">
        <environment id="development">
            <!-- 配置JDBC事务控制,由mybatis进行管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源,采用dbcp连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driverClass}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--告诉mybatis加载映射文件-->
    <mappers>
        <mapper resource="com/mybatis/sqlmap/User.xml"></mapper>
<!--  第一种写映射文件的名字  mapper代理方式实现-->
        <mapper resource="com/mybatis/mapper/UserMapper.xml"></mapper>
        <!--第二种 写类名 一定要有对应的映射文件与之对应-->
<!--        <mapper class="com.mybatis.mapper.UserMapper"></mapper>-->

        <!--第三种 直接写包名-->
<!--        <package name="com.mybatis.mapper"/>-->
    </mappers>
</configuration>

重点:由于我们的namespace是直接和接口进行绑定的,所以我们只需要加载映射文件就算是完成了。

<!--  第一种写映射文件的名字  mapper代理方式实现-->
        <mapper resource="com/mybatis/mapper/UserMapper.xml" />
<!--第二种 写类名: 需要对应的mapper.xml与接口mapper处于同一包下才可以,且xml文件名与接口名要相同-->
        <mapper class="com.mybatis.mapper.UserMapper" />
<!--第三种 直接写包名:需要对应的mapper.xml与接口mapper处于同一包下才可以,且xml文件名与接口名要相同-->
        <package name="com.mybatis.mapper"/>
还有一种方式是使用url,此时也不需要同包同名
加载方式1,这种方式不用保证同接口同包同名 加载映射文件的第二种方式class方式,同名且在同意路径下

总结:在使用url/resource时,无需同包或者同名,在使用class/package时必须要在同包同名下。

2.Spring,mybatis整合时使用的方式

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   <property name="dataSource" ref="dataSource"/>
   <!--指定mapper.xml文件的位置-->
   <property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"></property>
 </bean>

一般使用的mapperLocations指明mapper.xml文件的位置,如果不写,则默认时和dao在同一包下且同名。

相关文章

网友评论

      本文标题:2020-04-05 mybatis加载映射文件的三种常见方式

      本文链接:https://www.haomeiwen.com/subject/wxbephtx.html