學習筆記——Mybatis核心配置文件概述及根標簽

来源:https://www.cnblogs.com/isDaHua/archive/2023/01/09/17037728.html
-Advertisement-
Play Games

2023-01-09 一、Mybatis核心配置文件概述及根標簽 1、核心配置文件的概述(即“mybatis-config.xml”) MyBatis的配置文件包含了會深深影響MyBatis行為的設置和屬性信息。 2、標簽 (1)configuration(配置) (2)properties(屬性) ...


2023-01-09

一、Mybatis核心配置文件概述及根標簽

1、核心配置文件的概述(即“mybatis-config.xml”)

MyBatis的配置文件包含了會深深影響MyBatis行為的設置和屬性信息。

2、標簽

(1)configuration(配置)

(2)properties(屬性)

作用:定義或引入外部屬性文件

在“day02_mybatis.src.main.resources”文件夾下創建“資料庫的連接文件”,命名為“db.properties”

①db.properties裡面的內容

#裡面存放的數據格式為key=value
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/db220106?serverTimezone=UTC
db.username=設置自己的資料庫的用戶名稱
db.password=資料庫的密碼

②“day02_mybatis.src.main.resources”下的“mybatis-config.xml”中的內容

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

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

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--設置映射文件-->
    <mappers>
        <mapper resource="mapper/EmployeeMapper.xml"/>
    </mappers>
</configuration>

③“day02_mybatis.src.test.java.TestMybatis”中的代碼

import com.hh.mybatis.mapper.EmployeeMapper;
import com.hh.mybatis.pojo.Employee;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class TestMybatis {
    @Test
    public void TestMybatis(){
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //通過sqlSessionFactory獲取sqlSession對象
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //獲取EmployeeMapper的代理對象
            EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
            System.out.println("employeeMapper.getClass().getName() = " + employeeMapper.getClass().getName());

            Employee employee = employeeMapper.selectEmployee(1);
            System.out.println("employee = " + employee);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

④測試代碼,代碼OK

(3)settings(設置)

①作用:這是MyBatis中極為重要的調整設置,它們會改變MyBatis的運行行為

②例如:mapUnderscoreToCamelCase屬性:表示是否開啟駝峰命名自動映射,預設值是false,如設置true會自動將欄位last_name與lastName屬性自動映射。

③在“day02_mybatis.src.main.resources”下的“mybatis-config.xml”中的“<settings>”設置

<settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

(4)typeAliases(類型別名)

①作用:類型別名可為java類型設置一個縮寫名字。

②xml代碼:

<typeAliases>
        <typeAlias type="com.hh.mybatis.pojo.Employee" alias="employee"></typeAlias>
</typeAliases>

其中的xml代碼也可以簡寫為

 <typeAliases>
        <package name="com.hh.mybatis.pojo"/>
</typeAliases>

③之後,可以將“day02_mybatis.src.mian.resources.mapper”下的“EmployeeMapper.xml”中的“resultType”設置為“employee”,如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.hh.mybatis.mapper.EmployeeMapper">
    <select id="selectEmployee" resultType="employee">
        SELECT
            id,
            last_name,
            email,
            salary
        FROM
            tbl_employee
        WHERE
            id=#{empId}
    </select>
</mapper>

(5)typeHandlers(類型處理器)

(6)objectFactory(對象工廠)

(7)plugins(插件)

(8)environments(環境配置)

①作用:設置資料庫的連接環境

②實例xml代碼

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

(9)databaseldProvider(資料庫廠商標識)

(10)mappers(映射器)

 ①作用:設置映射文件路徑

②xml代碼:

例如:

<!--設置映射文件-->
    <mappers>
        <mapper resource="mapper/EmployeeMapper.xml"/>
    </mappers>

3、註意事項

核心配置中的子標簽,是有順序要求的。順序如下:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 電銷是什麼?就是坐席拿著電話給客戶打電話嗎?no no no,讓我們一起走進京音平臺之電銷系統。 京音平臺2020年初開始建設,過去的兩年多的時間里,經歷了跌宕起伏,有經驗、有教訓,整體來說平臺經歷了人工、自動化階段,目前處於初步智能化階段,希望可以將過去的一些心路歷程分享給大家,共同交流、共同進... ...
  • 每條if語句的核心都是一個值為True或False的表達式。Python根據條件測試的值為True還是False來決定是否執行if語句中的代碼。如果條件測試的值為True,Python就執行緊跟在if語句後面的代碼;如果為False,Python就忽略這些代碼。 1. 檢查是否相等:將一個變數的當前 ...
  • 最近刷leetcode題,使用了move()函數及優先隊列(堆)priority_queue數據結構,記錄一下! 1.move函數 move(obj)函數的功能是把obj當做右值處理,可以應用在對象的移動上。 右值引用 為了支持移動操作,新標準引入了一種新的引入類型——右值引用,所謂右值引用就是必須 ...
  • 元組 1. 元組:不可變的列表。元組一經創建不能被修改。 2. 表示:用圓括弧()來表示,並用逗號來分隔其中的元素。可通過索引訪問其元素。 3. 訪問:訪問列表元素,指出元組的名稱,再指出元素的索引,並將其放在方括弧內。請求獲取列表元素時,Python只返回該元素,而不包括方括弧和引號。元組訪問與列 ...
  • 2023-01-09 一、Mybatis映射文件 1、映射文件根標簽 mapping標簽: 該標簽中的namespace要求與介面的全類名一致 2、映射文件子標簽 (1)cache(該命名空間的緩衝配置) (2)cache-ref(引用其他命名空間的緩存配置) (3)resultMap(描述如何從數 ...
  • python數據分析與可視化常用庫 numpy+matplotlib+pandas 思維導圖 圖中難免有錯誤,後期隨著學習與應用的深入,會不斷修改更新。 當前版本號:1.0 numpy介紹 NumPy 是什麼? NumPy是使用Python進行科學計算的基礎軟體包。除其他外,它包括: 功能強大的N維 ...
  • 【列表一:操作列表】:這裡總結了操作列表的部分知識,包括使用for迴圈遍歷列表、range()函數介紹、使用range()函數創建數值列表,以及是列表的切片。 ...
  • 前言 前段時間一直使用到word文檔轉pdf或者pdf轉word,尋思著用Java應該是可以實現的,於是花了點時間寫了個文件轉換工具 源碼weloe/FileConversion (github.com) 主要功能就是word和pdf的文件轉換,如下 pdf 轉 word pdf 轉 圖片 word ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...