spring和Mybatis的核心配置檔案

ning12發表於2024-06-08

目錄
  • 四、核心配置檔案詳解
  • 五、MyBatis獲取引數值的兩種方式
    • 5.1、搭建新的module:mybatis_parameter
    • 5.2、單個字面量型別的引數
    • 5.3、多個字面量型別的引數
    • 5.3、map集合型別的引數
    • 5.4、實體類型別的引數 用的較多
    • 5.5、使用@Param標識引數

四、核心配置檔案詳解

<?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>
    <!--
           MyBatis核心配置檔案中,標籤的順序:
           properties?,settings?,typeAliases?,typeHandlers?,
           objectFactory?,objectWrapperFactory?,reflectorFactory?,
           plugins?,environments?,databaseIdProvider?,mappers?
       -->


    <!--引入properties屬性檔案-->
    <properties resource="jdbc.properties"></properties>

    <!--設定型別別名-->
    <typeAliases>
        <!--
        typeAliases:設定某個型別的別名
        以包單位,將包下所有的型別設定預設的型別別名,即類名且不區分大小寫
        -->
        <package name=""/>
    </typeAliases>

    <!--配置連線資料庫的環境-->
    <!--
    environments:配置多個連線資料庫的環境
    屬性:
    default:設定預設使用的環境的id
    -->
    <environments default="development">
        <!--
        environment:配置某個具體的環境
        屬性:
        id:表示連線資料庫環境的唯一標識,不能重複
        -->
        <environment id="development">
            <!--
            transactionManager:設定事務管理方式
            屬性:"JDBC|MANAGED"
            JDBC:表示當前環境中,執行SQL時,使用的是JDBC中原生的事務管理方式,
                 事務的提交或回滾需要手動處理
            MANAGED:被管理,例如Spring
            -->
            <transactionManager type="JDBC"/>
            <!--
            dataSource:配置資料來源
            屬性:
            type:設定資料來源的型別
            type:"POOLED|UNPOOLED|JNDI"
            POOLED:表示使用資料庫連線池快取資料庫連線
            UNPOOLED:表示不使用資料庫連線池
            JNDI:表示使用上下文中的資料來源
            -->
            <dataSource type="POOLED">
                <!--設定連線資料庫的驅動-->
                <property name="driver" value="${jdbc.driver}"/>
                <!--設定連線資料庫的連線地址-->
                <property name="url" value="${jdbc.url}"/>
                <!--設定連線資料庫的使用者名稱-->
                <property name="username" value="${jdbc.username}"/>
                <!--設定連線資料庫的密碼-->
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--引入MyBatis的對映檔案-->
    <mappers>
        <!--<mapper resource=""/>-->
        <!--
            以包為單位引入對映檔案
            要求:
            1、mapper介面所在的包要和對映檔案所在的包一致
            2、mapper介面要和對映檔案的名字一致
        -->
        <package name=""/>
    </mappers>
</configuration>

Idea檔案模板

因為配置檔案的模板基本相似,我們使用idea工具的時候可以加其加入到模板當中

核心配置檔案模板File->settings->Editor->File and Code Templates

五、MyBatis獲取引數值的兩種方式

5.1、搭建新的module:mybatis_parameter

  • MyBatis獲取引數值的兩種方式:${}和#{}

  • ${}的本質就是字串拼接,採用sql拼接,無法防止sql注入

  • #{}的本質就是佔位符賦值 ,採用預編譯 防止sql注入

5.2、單個字面量型別的引數

  • 如果mapper介面中的方法引數為單個的字面量型別,此時可以使用#{}和${}以任意的名稱獲取引數的值,如果使用${},注意需要手動新增單引號。

5.3、多個字面量型別的引數

  • 如果mapper介面中的方法引數為多個時,此時MyBatis會自動將這些引數放在一個map集合(key,value)中,以arg0, arg1...為鍵,以引數為值;或者以param1, param2...為鍵,以引數為值。因此只需要透過#{}和${}訪問map集合的鍵就可以獲取相對於的值,如果使用${},注意需要手動新增單引號。

5.3、map集合型別的引數

  • 如果mapper介面中的方法引數為多個時,此時可以手動建立一個map集合,將這些引數放在map集合中,只需要透過#{}和${}訪問map集合的鍵(自己定義的鍵)就可以獲取相對於的值,如果使用${},注意需要手動新增單引號。

5.4、實體類型別的引數 用的較多

  • 如果mapper介面中的方法引數為實體類物件時,此時可以使用#{}和${},透過訪問實體類物件中的屬性名稱獲取屬性值,如果使用${},注意需要手動新增單引號

5.5、使用@Param標識引數

  • 可以透過@Param註解標識mapper介面中的方法引數,此時MyBatis會將這些引數放在map集合中,以@Param註解的value屬性值為鍵,以引數為值;以param1,param2...為鍵,以引數為值;只需要透過#{}和${}訪問map集合的鍵就可以獲取相對於的值,如果使用${},注意需要手動新增單引號。

相關文章