1. 程式人生 > >mybatis學習筆記(5)-配置檔案SqlMapConfig

mybatis學習筆記(5)-配置檔案SqlMapConfig

本文主要講解SqlMapConfig配置檔案

SqlMapConfig.xml中配置的內容和順序如下

  • properties(屬性)
  • settings(全域性配置引數)
  • typeAliases(類型別名)
  • typeHandlers(型別處理器)
  • objectFactory(物件工廠)
  • plugins(外掛)
  • environments(環境集合屬性物件)
    • environment(環境子屬性物件)
      • transactionManager(事務管理)
      • dataSource(資料來源)
  • mappers(對映器)

(注:粗體是重點,斜體不常用)

properties(屬性)

將資料庫連線引數單獨配置在db.properties中,只需要在SqlMapConfig.xml中載入db.properties的屬性值。在SqlMapConfig.xml中就不需要對資料庫連線引數硬編碼。

將資料庫連線引數只配置在db.properties中。原因:方便對引數進行統一管理,其它xml可以引用該db.properties。

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://120.25.162.238:3306/mybatis001?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123

在sqlMapConfig.xml載入屬性檔案:

<properties resource="db.properties">
        <!--properties中還可以配置一些屬性名和屬性值  -->
        <!-- <property name="jdbc.driver" value=""/> -->
</properties>

<!-- 和spring整合後 environments配置將廢除-->
<environments default="development">
    <environment id="development">
        <!-- 使用jdbc事務管理,事務控制由mybatis-->
        <transactionManager type="JDBC" />
        <!-- 資料庫連線池,由mybatis管理-->
        <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 將按照下面的順序(優先順序)來載入屬性:

  • properties元素體內定義的屬性首先被讀取。
  • 然後會讀取properties元素中resource或url載入的屬性,它會覆蓋已讀取的同名屬性。
  • 最後讀取parameterType傳遞的屬性,它會覆蓋已讀取的同名屬性。

建議:

  • 不要在properties元素體內新增任何屬性值,只將屬性值定義在properties檔案中。
  • 在properties檔案中定義屬性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

settings(全域性引數配置)

mybatis框架在執行時可以調整一些執行引數,比如:開啟二級快取、開啟延遲載入…

全域性引數將會影響mybatis的執行行為。具體參考官網:

typeAliases(類型別名)

在mapper.xml中,定義很多的statement,statement需要parameterType指定輸入引數的型別、需要resultType指定輸出結果的對映型別。

如果在指定型別時輸入型別全路徑,不方便進行開發,可以針對parameterTyperesultType指定的型別定義一些別名,在mapper.xml中通過別名定義,方便開發。

  • mybatis預設支援別名
別名 對映的型別
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
  • 自定義別名
    • 單個別名定義
    • 批量定義別名(常用)
    <!-- 別名定義 -->
    <typeAliases>
    
        <!-- 針對單個別名定義
        type:型別的路徑
        alias:別名
         -->
        <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> -->
        <!-- 批量別名定義
        指定包名,mybatis自動掃描包中的po類,自動定義別名,別名就是類名(首字母大寫或小寫都可以)
        -->
        <package name="com.iot.mybatis.po"/>
    
    </typeAliases>

typeHandlers(型別處理器)

mybatis中通過typeHandlers完成jdbc型別和java型別的轉換。例如:

<select id="findUserById" parameterType="int" resultType="user">
        select * from user where id = #{id}
</select>

mybatis自帶的型別處理器基本上滿足日常需求,不需要單獨定義。

mybatis支援型別處理器

型別處理器 Java型別 JDBC型別
BooleanTypeHandler Boolean,boolean 任何相容的布林值
ByteTypeHandler Byte,byte 任何相容的數字或位元組型別
ShortTypeHandler Short,short 任何相容的數字或短整型
IntegerTypeHandler Integer,int 任何相容的數字和整型
LongTypeHandler Long,long 任何相容的數字或長整型
FloatTypeHandler Float,float 任何相容的數字或單精度浮點型
DoubleTypeHandler Double,double 任何相容的數字或雙精度浮點型
BigDecimalTypeHandler BigDecimal 任何相容的數字或十進位制小數型別
StringTypeHandler String CHAR和VARCHAR型別
ClobTypeHandler String CLOB和LONGVARCHAR型別
NStringTypeHandler String NVARCHAR和NCHAR型別
NClobTypeHandler String NCLOB型別
ByteArrayTypeHandler byte[] 任何相容的位元組流型別
BlobTypeHandler byte[] BLOB和LONGVARBINARY型別
DateTypeHandler Date(java.util) TIMESTAMP型別
DateOnlyTypeHandler Date(java.util) DATE型別
TimeOnlyTypeHandler Date(java.util) TIME型別
SqlTimestampTypeHandler Timestamp(java.sql) TIMESTAMP型別
SqlDateTypeHandler Date(java.sql) DATE型別
SqlTimeTypeHandler Time(java.sql) TIME型別
ObjectTypeHandler 任意 其他或未指定型別
EnumTypeHandler Enumeration型別 VARCHAR-任何相容的字串型別,作為程式碼儲存(而不是索引)

mappers(對映配置)

  • 通過resource載入單個對映檔案
<!--通過resource方法一次載入一個對映檔案 -->
<mapper resource="mapper/UserMapper.xml"/>
  • 通過mapper介面載入單個mapper
 <!-- 通過mapper介面載入單個 對映檔案
        遵循一些規範:需要將mapper介面類名和mapper.xml對映檔名稱保持一致,且在一個目錄中
        上邊規範的前提是:使用的是mapper代理方法
         -->
<mapper class="com.iot.mybatis.mapper.UserMapper"/> 

目錄示例

com.iot.mybatis.mapper------------------package包
           |----UserMapper.java
           |----UserMapper.xm批量載入mapper(推薦使用)

<!-- 批量載入mapper
        指定mapper介面的包名,mybatis自動掃描包下邊所有mapper介面進行載入
        遵循一些規範:需要將mapper介面類名和mapper.xml對映檔名稱保持一致,且在一個目錄 中
        上邊規範的前提是:使用的是mapper代理方法
         -->
<package name="com.iot.mybatis.mapper"/>


相關推薦

mybatis學習筆記(5)-配置檔案SqlMapConfig

本文主要講解SqlMapConfig配置檔案 SqlMapConfig.xml中配置的內容和順序如下 properties(屬性)settings(全域性配置引數)typeAliases(類型別名)typeHandlers(型別處理器)objectFactory(物件工

mybatis學習筆記(5)-配置檔案

mybatis學習筆記(5)-SqlMapConfig 標籤: mybatis 本文主要講解SqlMapConfig配置檔案 SqlMapConfig.xml中配置的內容和順序如下 properties(屬性) settings(全域

Mybatis學習筆記-核心配置檔案概述

properties Mybatis核心配置檔案包含了資料庫連線的核心配置和mybatis框架的基礎配置,是mybatis的核心描述檔案。 下面逐一介紹該配置檔案中的常用配置。 1.properties標籤 該標籤常用於定義mybatis環境的常量值

mybatis學習筆記(二)配置檔案

自己只為記錄,方便以後查閱;配置資訊的順序不能顛倒!!!配置資訊的順序不能顛倒!!!配置資訊的順序不能顛倒!!!一、properties有三種配置方式  1、property子元素。2、properties配置檔案 3、程式引數傳遞 properties配置檔案、這種方法用的

MyBatis學習筆記5——

SqlSession 例項在 MyBatis 中是非常強大的一個類。在這裡你會看到所有執行語句、提交或回滾事務和獲取對映器例項的方法。 在 SqlSession 類中有超過 20 個方法,所以將它們組合成易於理解的分組。 執行語句方法 這些方法被用來執行定義在

Panda學習筆記1——配置檔案

web.xml 配置contextConfigLocation 在web.xml中定義contextConfigLocation引數,Spring會使用這個引數去載入所有逗號分隔的xml檔案,如果沒有這個引數,Spring預設載入web-inf/applicat

SpringBoot 學習筆記配置檔案詳解

在建立SpringBoot專案時,工程會自動建立一個application.properties,或者application.yml,兩種檔案格式都支援,這裡用application.yml,加入以下配置,注意空格 1. 引入依賴 &

Redis學習筆記--Redis配置檔案Sentinel.conf引數配置詳解

redis-sentinel.conf配置項說明如下: 1.port 26379 sentinel監聽埠,預設是26379,可以修改。 2.sentinel monitor <master-name> <ip> <redis-port> <quorum> 告

spring學習筆記(5)屬性檔案引入使用

外部檔案引用 在配置資料庫引數或郵箱伺服器引數等靜態資源時,相對於直接將資訊寫入Spring的.xml,.java等配置檔案中,更好的做法是將配置資訊分類獨立地存放到外部屬性檔案中,然後在Spring配置檔案中引入使用。這種做法的好處是: 1. 提高配置資訊

MyBatis學習筆記(5)

MyBatis入門之延遲載入 resultMap可以實現高階對映(使用association、collection實現一對一及一對多對映),association、collection具備延遲載入功能。 延遲載入:先從單表查詢、需要時再從關聯表去關聯查詢,大

軟體安全學習筆記(5):FAT32檔案系統與資料恢復

一、FAT32檔案系統結構 1、引導扇區:描述分割槽大小、簇的大小、FAT表個數與大小、分割槽載入程式等。 2、FAT(檔案分配表)FAT1+FAT2:記錄資料儲存區每一個簇的使用情況,形成每個檔案的簇連結串列 3、資料儲存區: 儲存兩類資料:目錄項、檔案資料 二、幾個概

Struts2學習筆記2---配置檔案

      在Struts2中主要有兩個配置檔案:web.xml和struts.xml,當新建一個web專案時,可以從Struts2的示例程式中複製一份,然後做相應的修改即可。web.xml的基本形式如下: <web-app id="WebApp_9" version=

Java虛擬機器學習筆記(5)——類檔案結構

          上一篇介紹了JVM物件的記憶體分配和回收策略。這篇接著介紹Java的類檔案結構,這篇的內容可能會比較多,我儘量循序漸進的講。要學習class的檔案結構,先要大體對class檔案結構有哪些內容有一個整體把握。現在,看下面一張表。           上面

Mybatis 學習筆記——配置檔案SqlMapConfig.xml和對映檔案Mapper.xml

一、SqlMapConfig.xml (一)properties(屬性)   將資料庫連線引數單獨配置在db.properties中,只需要在SqlMapConfig.xml中載入db.properties的屬性值。在SqlMapConfig.xml中就不需要對

SqlMapConfig.xml配置檔案---Mybatis學習筆記(七)

SqlMapConfig.xml檔案的配置內容: SqlMapConfig.xml中配置的內容和順序如下: properties(屬性) settings(全域性配置引數) typeAliases(類型別名) typeHandlers

mybatis學習筆記之——mybatis的XML配置檔案(全域性配置檔案

MyBatis的配置檔案包含了會深深影響MyBatis行為的設定(settings)和屬性(properties)資訊。我們詳細瞭解一下MyBatis的各種標籤的作用以及使用方法。 properties properties:配置,mybatis可以使用properties標籤來引入外部pr

mybatis學習筆記之——mybatis的Mapper XML對映檔案配置資訊

sql對映檔案對應的增刪改查都有自己的標籤: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

mybatis學習筆記(一)之檔案配置

通過 http://mvnrepository.com/ 可以查詢pom.xml檔案的依賴座標 1,、mybatis的 pom.xml 檔案大概依賴如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:

mybatis學習筆記(三)- 全域性配置檔案

1. 引入 dtd 約束 為什麼要引入 dtd 約束 由於 mybatis 的全域性配置檔案很重要,我們學習 mybatis 必須要用到,但是如果不引入 dtd 約束,我們在這個檔案裡將不會得到程式碼提示,會給我們開發帶來極大不便。 引入方法 聯網情況下:直接點

MyBatis學習筆記5:認識使用typeHandlers配置型別處理器

簡述 註冊了的型別處理器會用於處理下面兩種情形: 為PreparedStatement設定一個引數,將引數從Java型別轉為JDBC型別。 從ResultSet中取出一個值,將結果從JDBC型別轉為Java型別。 型別處理器可分為以下兩類: MyB