目錄
- 四、核心配置檔案詳解
- 五、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集合的鍵就可以獲取相對於的值,如果使用${},注意需要手動新增單引號。