MyBatis 配置解析

HuDu發表於2020-06-19

mybatis-config.xml 配置解析

<!--引入外部配置檔案-->
<properties resource="db.properties"/>

這是為了引入外部檔案,這邊是為下面的property注入資料。

<settings>
        <!--標準的日誌工廠實現-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

這是配置控制檯日誌輸出,這裡使用的是標準日誌輸出格式。

<!--可以給實體類起別名-->
 <typeAliases>
     <typeAlias type="com.hudu.pojo.Student" alias="Student"/>
     <typeAlias type="com.hudu.pojo.Teacher" alias="Teacher"/>
      <!--掃描實體類的包,它的預設別名就為這個類的類名,實體類比較多用package掃描-->
     <!--<package name="com.com.test.pojo"/>-->
 </typeAliases>

這是給實體類起別名,便於在對應的Mapper.xml檔案編寫時指定物件型別。

<environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
</environments>

這是環境配置,defalut表示使用哪個環境,可以配置多個環境。transactionManager type 表示使用上面方式連線資料庫。dataSource type 表示是否使用連線池。driver、url、username、username分別表示使用的是資料庫連線驅動、資料庫連線地址、資料庫使用者名稱、資料庫使用者密碼。

<mappers>
        <!--通過resource方法定位StudentMapper.xml檔案-->
        <mapper resource="com/hudu/dao/TeacherMapper.xml"/>
        <mapper resource="com/hudu/dao/StudentMapper.xml"/>

        <!--通過類定位-->
        <!-- <mapper class="com.hudu.dao.TeacherMapper"/>-->
        <!-- <mapper class="com.hudu.dao.StudentMapper"/>-->

        <!--通過包掃描-->
        <!-- <package name="com.hudu.dao"/>-->
    </mappers>

解釋如上,其它具體配置用法看官方文件

介面對應的 XML 配置檔案解釋

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hudu.dao.StudentMapper">
    <select id="getStudents" resultType="Student">
        select * from student
    </select>

    <delete id="deleteStudent" parameterType="_int">
        delete from student where id = #{sid}
    </delete>

    <insert id="addStudent" parameterType="Student">
        insert into student(id,name,tid) values (#{id},#{name},#{tid})
    </insert>

    <update id="updateStudent" parameterType="Student">
        update student set name = #{name},tid = #{tid} where id = #{id}
    </update>
</mapper>

其中namespace表示繫結的介面,select、delete 等表示 sql 中的操作,id 繫結的介面中定義的方法,parameterType 表示方法中的引數型別,resultType 表示返回值的型別。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章