日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解MyBatis XML配置解析

瀏覽:74日期:2023-10-22 16:13:09
MyBatis核心配置文件

<?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> <environments default='development'> <environment id='development'> <transactionManager type='JDBC'/> <dataSource type='POOLED'> <property name='driver' value='${driver}'/> <property name='url' value='${url}'/> <property name='username' value='${username}'/> <property name='password' value='${password}'/> </dataSource> </environment> </environments> <mappers> <mapper resource='org/mybatis/example/BlogMapper.xml'/> </mappers></configuration>

詳解MyBatis XML配置解析

注意:接下來所有的配置,都要按照上圖的順序進行配置,否則會出錯

1. 環境配置(environments)

MyBatis 可以配置成適應多種環境,但每個 SqlSessionFactory 實例只能選擇一種環境

environments 元素定義了如何配置環境。

其中可以嵌套多個環境

<environments default='development'> <!--環境1--> <environment id='development'><!--事務管理器--> <transactionManager type='JDBC'> <property name='...' value='...'/> </transactionManager><!--數據源--> <dataSource type='POOLED'> <property name='driver' value='${driver}'/> <property name='url' value='${url}'/> <property name='username' value='${username}'/> <property name='password' value='${password}'/> </dataSource> </environment> <!--環境2--> <environment> ... </environment> <!--環境3--> <environment> ... </environment></environments>

子元素節點:environment

環境 ID:每個環境都有對應的一個環境ID

默認環境ID(比如:default=“development”) 環境可以隨意命名,但務必保證默認的環境 ID 要匹配其中一個環境 ID。

事務管理器(transactionManager)

在 MyBatis 中有兩種類型的事務管理器:JDBC/MANAGED 默認為 JDBC

數據源(dataSource)

dataSource 元素使用標準的 JDBC 數據源接口來配置 JDBC 連接對象的資源。 數據源是必須配置的。 有三種內建的數據源類型 UNPOOLED/POOLED/JNDI unpooled:這個數據源的實現只是每次被請求時打開和關閉連接。 pooled(默認):這種數據源的實現利用“池”的概念將 JDBC 連接對象組織起來 , 這是一種使得并發 Web 應用快速響應請求的流行處理方式。 jndi:這個數據源的實現是為了能在如 Spring 或應用服務器這類容器中使用,容器可以集中或在外部配置數據源,然后放置一個 JNDI 上下文的

數據源也有很多第三方的實現:dbcp、c3p0、druid等等…

2. 屬性(properties)

我們利用Properties屬性來實現應用配置文件

這些屬性可以在外部進行配置,并可以進行動態替換。

方式一:直接在Mybatis核心配置文件中配置這些屬性(我們先前的方法)

詳解MyBatis XML配置解析

方式二:在 properties 元素的子元素中設置

編寫 config.properties

driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis?useSSH=true&useUnicode=true&characterEncoding=UTF-8username=rootpassword=200024

在核心配置文件中引入

<?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> <!--外部引入配置文件--> <properties resource='config.properties'/> <environments default='development'> <environment id='development'> <transactionManager type='JDBC'/> <dataSource type='POOLED'> <!--這里就不用配置屬性了,默認即可--> <property name='driver' value='${driver}'/> <property name='url' value='${url}'/> <property name='username' value='${username}'/> <property name='password' value='${password}'/> </dataSource> </environment> </environments></configuration>

引入外部文件的同時,也可以在其中增加一些屬性配置

優先級問題:首先讀取在 properties 元素體內指定的屬性

<properties resource='config.properties'> <property name='username' value='root'/> <property name='password' value='200024'/></properties>

比如config.properties中的數據庫連接密碼正確,但是properties 元素體內的密碼不正確,則會報錯,因為優先讀取properties 元素體內指定的屬性

3. 類型別名(typeAliases)

注意位置順序

詳解MyBatis XML配置解析

方式一:通過typeAlias起別名

類型別名可為 Java 類型設置一個縮寫名字。 它僅用于 XML 配置,意在降低冗余的全限定類名書寫

<typeAliases> <typeAlias type='pojo.User' alias='User'/></typeAliases>

type的值為指定Java類名,alias為新起的別名

方式二:通過package起別名

也可以指定一個包名,MyBatis 會在包名下面搜索對應的實體類

詳解MyBatis XML配置解析

<typeAliases> <package name='pojo'/></typeAliases>

每一個在包 pojo 中的 實體類,在沒有注解的情況下,會使用 實體類 的首字母小寫的非限定類名來作為它的別名。 比如 pojo.User 的別名為 user;若有注解,則別名為其注解值。

@Alias('hello')public class User { ... }

此時,別名為hello

詳解MyBatis XML配置解析

建議

在實體類較少的時候,使用第一種方式 在實體類較多的時候,使用第二種方式

下面是一些為常見的 Java 類型內建的類型別名。它們都是不區分大小寫的,注意,為了應對原始類型的命名重復,采取了特殊的命名風格。

別名 映射的類型 _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 object Object map Map hashmap HashMap list List arraylist ArrayList collection Collection iterator Iterator

4. 設置(settings)

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

設置(settings)查看幫助文檔https://mybatis.org/mybatis-3/zh/index.html

懶加載 日志實現 緩存開啟關閉

最常用:日志

4.1、日志工廠

如果一個數據庫操作出現了異常,我們需要排錯,日志是最好的助手!

詳解MyBatis XML配置解析

logImpl

SLF4J LOG4J LOG4J2 JDK_LOGGING COMMONS_LOGGING STDOUT_LOGGING NO_LOGGING

在MyBatis核心配置文件中配置我們的日志

注意大小寫問題!!!不要寫錯!!

注意位置順序問題

<settings> <!--標準日志工廠實現--> <setting name='logImpl' value='STDOUT_LOGGING'/></settings>

然后運行我們的測試類,發現多了很多內容,這就是我們的日志

詳解MyBatis XML配置解析

4.2、LOG4J

什么是LOG4J?

Log4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等我們也可以控制每一條日志的輸出格式通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼

使用步驟

導包

<!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>

配置log4j.properties

#將等級為DEBUG的日志信息輸出到console和file這兩個目的地,console和file的定義在下面的代碼log4j.rootLogger=DEBUG,console,file#控制臺輸出的相關設置log4j.appender.console = org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target = System.outlog4j.appender.console.Threshold=DEBUGlog4j.appender.console.layout = org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=[%c]-%m%n#文件輸出的相關設置log4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=./log/zsr.loglog4j.appender.file.MaxFileSize=10mblog4j.appender.file.Threshold=DEBUGlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n#日志輸出級別log4j.logger.org.mybatis=DEBUGlog4j.logger.java.sql=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.ResultSet=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG

在MyBatis核心配置文件中配置我們LOG4J

<settings> <setting name='logImpl' value='LOG4J'/></settings>

測試

詳解MyBatis XML配置解析

同時在當前項目目錄下生成了zsr.log文件,這里面保存了我們的日志信息

這就是我們在log4j.properties進行的設置,我們同樣可以設置其他的內容

詳解MyBatis XML配置解析

IDEA可能出現打不開的情況,我們將其換成.txt格式就可以打開了

詳解MyBatis XML配置解析

詳解MyBatis XML配置解析

簡要使用

要在使用LOG4J的類中,導入包 org.apache.log4j.Logger

日志對象,參數為當前類的class

static Logger logger = Logger.getLogger(UserMapperTest.class);

詳解MyBatis XML配置解析

編寫測試方法,三種常見日志級別

@Testpublic void testLog4j() { logger.info('info:進入了testLog4j方法'); logger.debug('debug:進入了testLog4j方法'); logger.error('error:進入了testLog4j方法');}

運行該方法

詳解MyBatis XML配置解析

5. 映射器(mappers)

mappers

映射器 : 定義映射SQL語句文件

告訴 MyBatis 到哪里去找映射文件

使用相對于類路徑的資源引用 使用完全限定資源定位符(包括 file:/// 的 URL) 使用類名和包名等。

方式一:使用相對于類路徑的資源引用注冊綁定(推薦)

<mappers> <mapper resource='mapper/UserMapping.xml'/></mappers>

方式二:使用映射器接口實現類的完全限定類名注冊綁定

<mappers> <mapper /></mappers>

常見問題:

詳解MyBatis XML配置解析

注意點:

接口和他的Mapper配置文件必須同名 接口和他的Mapper配置文件必須在同一個包下

我的問題:Mapper接口和Mapper配置文件沒有同名!!

詳解MyBatis XML配置解析

修改后:

詳解MyBatis XML配置解析

方式三: 將包內的映射器接口實現全部注冊為映射器

<mappers> <package name='mapper'/></mappers>

注意點同方式二:

接口和他的Mapper配置文件必須同名 接口和他的Mapper配置文件必須在同一個包下 6. 其他配置

了解~

typeHandlers(類型處理器)

無論是 MyBatis 在預處理語句(PreparedStatement)中設置一個參數時,還是從結果集中取出一個值時, 都會用類型處理器將獲取的值以合適的方式轉換成 Java 類型。 你可以重寫類型處理器或創建你自己的類型處理器來處理不支持的或非標準的類型。【了解即可】

objectFactory(對象工廠)

MyBatis 每次創建結果對象的新實例時,它都會使用一個對象工廠(ObjectFactory)實例來完成。 默認的對象工廠需要做的僅僅是實例化目標類,要么通過默認構造方法,要么在參數映射存在的時候通過有參構造方法來實例化。 如果想覆蓋對象工廠的默認行為,則可以通過創建自己的對象工廠來實現。【了解即可】

plugins(插件)

三個常用插件:

mybatis-generator-core mybatis-plus 通用mapper

到此這篇關于詳解MyBatis XML配置解析的文章就介紹到這了,更多相關MyBatis XML配置內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av自拍| 三级在线观看一区二区| 青草av.久久免费一区| 性一交一乱一区二区洋洋av| 日韩电影免费在线观看| 日韩国产一区二区三区| 亚洲精品**中文毛片| 日韩欧美另类一区二区| 日本久久精品| 久久精品亚洲人成影院| 一级欧洲+日本+国产| 性一交一乱一区二区洋洋av| 男女男精品视频网| 日韩精品第二页| 国产精品高潮呻吟久久久久| 久久精品福利| 99久久九九| 亚洲免费一区二区| 日本中文字幕不卡| 日韩区一区二| 麻豆精品少妇| 成人羞羞视频播放网站| 免费日韩av片| 91综合久久爱com| 精品三区视频| 久久麻豆精品| 亚洲精品伊人| 奇米色欧美一区二区三区| 国产成人免费精品| 激情欧美一区二区三区| 天堂va在线高清一区| 麻豆免费精品视频| 美女网站视频一区| 日韩中文字幕区一区有砖一区 | 精品三区视频| 99热国内精品| 蜜臀久久久久久久| 麻豆久久久久久| 黑丝美女一区二区| 日韩欧美2区| 国产黄大片在线观看| 中文日韩欧美| 国产精品巨作av| 国产一区日韩一区| 国产调教精品| 久久国产亚洲精品| 亚洲精品视频一二三区| 国产精品美女久久久久久不卡| 国产美女高潮在线| 一本色道精品久久一区二区三区| 97久久中文字幕| 视频福利一区| 日韩久久99| 久久久久免费av| 国产亚洲欧美日韩精品一区二区三区 | 亚洲精品第一| 欧美国产小视频| 另类国产ts人妖高潮视频| 欧美视频久久| 国产伊人精品| 麻豆中文一区二区| 亚洲免费播放| 国产va免费精品观看精品视频| 久久亚洲色图| а√天堂8资源在线| 日本a级不卡| 久久精品国产99久久| 国产欧美久久一区二区三区| 亚洲国产成人精品女人| 久久精品亚洲| 免费观看日韩电影| 亚洲v在线看| 久久女人天堂| 日韩国产欧美三级| 美女毛片一区二区三区四区| 久久精品二区亚洲w码| 最新国产精品久久久| 欧美成人基地| 久久99国产精品视频| 日韩欧美激情电影| 黄色亚洲大片免费在线观看| 欧美丰满日韩| 国产毛片精品| 蜜桃av一区二区在线观看| 日本免费一区二区三区四区| 91成人在线网站| 丝袜a∨在线一区二区三区不卡| 亚洲伦乱视频| 精品一区二区三区亚洲| 日韩av一区二区三区四区| 中文久久精品| 国产在线欧美| 另类中文字幕国产精品| 精品视频在线你懂得| 日韩精品三级| 亚洲91在线| 欧美中文日韩| 午夜欧美理论片| 久久国产电影| 精品日韩视频| 四虎成人av| 狠狠久久伊人| 精品淫伦v久久水蜜桃| 国产精品美女在线观看直播| 91精品国产自产精品男人的天堂| 综合亚洲色图| 免费视频最近日韩| 亚洲免费高清| 国产视频一区三区| 黄色不卡一区| 欧美不卡视频| 久久一级电影| 日韩欧美一区二区三区在线观看| 超碰在线99| 亚洲三级欧美| 久久99高清| 国产一区二区视频在线看| 麻豆高清免费国产一区| 麻豆久久久久久| 精品中国亚洲| 精品亚洲a∨| 韩国一区二区三区视频| 精品欧美日韩精品| 老司机精品视频在线播放| 久久福利在线| 麻豆精品一区二区综合av| 精品国产一区二区三区av片| 久久精品国产99国产| 欧美xxxx中国| 国产一二在线播放| 精品视频高潮| 欧美男人天堂| 91看片一区| 亚洲天堂黄色| 亚洲一区不卡| 视频在线观看国产精品| 中文字幕日韩亚洲| 日韩精品导航| 国产精品99久久久久久董美香| 麻豆精品一区二区综合av| 欧美激情国产在线| 日韩三区在线| 国产一区二区精品| 亚洲精品国产精品粉嫩| 91免费精品国偷自产在线在线| 91综合久久爱com| 国产精品黄色片| 亚洲黄色网址| 蜜桃伊人久久| 国产亚洲欧美日韩精品一区二区三区 | 国产成人免费| 日韩激情一区| 亚洲国产成人精品女人| 亚洲精品自拍| 精品美女在线视频| 欧美日韩中文字幕一区二区三区 | 黄色成人91| 亚州欧美在线| 欧美a一区二区| 秋霞影院一区二区三区| 久久国产66| 国产精品美女在线观看直播| 色天使综合视频| 蜜臀91精品一区二区三区| 欧美激情日韩| 久久伦理在线| 日韩不卡在线观看日韩不卡视频| 精品视频99| 一区在线免费观看| 日韩精品久久久久久久软件91| 国模大尺度视频一区二区| 亚洲成人va| 亚洲日本国产| 国产精品二区不卡| 亚洲欧美日韩国产综合精品二区 | 亚洲作爱视频| 国产日韩欧美| 香蕉久久99| 欧美日韩午夜| 亚洲网站视频| 国产一区 二区| 欧美91精品| 国产精品nxnn| 日本精品影院| 欧美日韩午夜电影网| 在线成人动漫av| 国产欧美视频在线| 精品一区免费| 国产精品一区二区三区av麻| 久久精品动漫| 91精品麻豆| 影视先锋久久| 国产免费av一区二区三区| 尤物网精品视频| 精品五月天堂| 亚洲精品在线二区| 今天的高清视频免费播放成人| 国产精品最新自拍| 国产综合精品一区| 麻豆一区在线|