Mybatis配置詳解

1、SqlSession的使用範圍說明

一、SQLSessionFactoryBuilder

  經過SqlSessionFactoryBuilder建立會話工廠SqlSessionFactory,將SqlSessionFactoryBuilder當成一個工具類使用便可,不須要使用單例模式管理,在建立SqlSessionFactory的時候,只須要new一次SqlSessionFactoryBuilder便可。java

二、SqlSessionFactory

  經過SqlSessionFactory建立SqlSession,使用單例模式來管理SqlSessionFactory(工廠一旦建立,只使用一個實例)。mysql

三、SqlSession

  SqlSession是一個面向用戶(程序員)的接口。
  SqlSession中提供了不少操做數據庫的方法:如selectOne(返回單個對象)、selectList(返回單個或多個對象)。
  SqlSession是線程不安全的,由於在SqlSession中除了有接口中的方法(操做數據庫的方法)以外。還有數據域屬性。
  SqlSession的最佳應用場合是在方法體內,將其定義爲局部變量來使用。程序員

2、SqlMapConfig.xml配置文件詳解

一、Properties屬性

  Properties屬性用來加載屬性配置文件。sql

<!--數據庫

加載屬性文件

    resource:屬性文件的相對路徑

    url:屬性文件的絕對路徑

 -->

<properties resource="config/db.properties">

    <!--

        配置一些屬性

        name:屬性的名稱

        value:屬性的值

    -->

    <!--<property name="" value="" /> -->

</properties>

  

  properties特性:
   Mybatis將按照下面的屬性來加載屬性:
   1. 首先會讀取在property標籤中定義的屬性。
   2. 而後會讀取在properties標籤中經過resource或url加載時的屬性,它會覆蓋已讀取得同名屬性。
   3. 最後會讀取sql中parameterType傳遞過來的屬性,它會覆蓋已讀取的同名屬性。緩存

二、settings全局參數配置

  Mybatis框架在運行時能夠調整一些運行參數,好比:開啓二級緩存、開啓延遲加載等。這些參數要經過settings標籤來配置,全局參數會影響Mybatis的運行行爲,配置必定要注意。安全

  經常使用的全局配置參數以下:mybatis

<!--全局參數配置-->app

<settings >

        <!--

            name:屬性名稱

            value:屬性的值

        -->

    <setting name="" value=""/>

</settings>

  

三、typeAlia

  在映射文件中的parameterType和resultType屬性中要指定輸入、輸出映射類型,若是類型爲PO,要指定PO類的全路徑這樣不是特別方便,可使用typeAlias定義一些別名,來方便開發。框架

<!--定義別名-->

<typeAliases>

    <!--

        type:須要起別名的字符串

        alias:對應的別名

    -->

    <typeAlias type="" alias="" />

    

    <!--

        name:包名,會對包下面的類進行掃描,自動批量設置別名,

            設置的別名爲類名,首字母大小寫都可

    -->

    <package name="" />

   

</typeAliases>

  Mybatis的默認別名
  

四、typeHandlers(類型處理器)

  Mybatis中經過typeHandlers完成jdbc類型和Java類型的裝換。一般狀況下,Mybatis提供的類型處理器知足平常須要,不須要咱們再自定義。

<typeHandlers>

<typeHandler handler="" jdbcType="" javaType="" />

</typeHandlers>

  Mybatis默認支持的數據類型
  

五、environments 環境

<!--

環境配置

    在和Spring整合後改配置將廢除

-->

<environments default="development">



    <environment id="development">

        <!--使用JDBC的事務管理,事務管理交給Mybatis-->

        <transactionManager type="JDBC"></transactionManager>

        <!--數據庫鏈接池,有Mybatis管理-->

        <dataSource type="POOLED">

            <property name="driver" value="com.mysql.jdbc.Driver" />

            <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />

            <property name="username" value="root" />

            <property name="password" value="root" />

        </dataSource>

    </environment>

</environments>

  

六、mapper 加載映射文件

  加載映射文件有三種方式

  一、加載單個映射文件

<!--引入mapper-->

<mappers>

    <!--rerource:引入映射文件相對於classpath的地址-->

    <mapper resource="config/sqlmap/userMapper.xml" />

</mappers>
  

  二、經過Mapper接口加載單個映射文件
  前提條件:
   (1). 使用Mapper代理的方式進行開發。
   (2). Mapper接口文件名要和映射文件名一致
   (3).Mapper接口文件和映射文件在同一個目錄下

<!--引入mapper-->

<mappers>

    

    <mapper class="com.jack.po.UserMapper" />

</mappers>
  

  三、批量記載映射文件
  前提條件:
   (1). 使用Mapper代理的方式進行開發。
   (2). Mapper接口文件名要和映射文件名一致
   (3).Mapper接口文件和映射文件在同一個目錄下

<!--引入mapper-->

<mappers>

    <!--name:mapper接口文件所在的包路徑-->

  <package name="" />

</mappers>

  本文來自上海尚學堂Java學員,轉載請註明出處。