精盡 MyBatis 原始碼分析 異常模組

2021-10-09 03:30:45 字數 2461 閱讀 6853

定義了 mybatis 專有的 persistenceexception 和 toomanyresult***ception 異常。

2.1 ibati***ception

org.apache.ibatis.exceptions.ibati***ception ,實現 runtimeexception 類,ibatis 的異常基類。**如下:

@deprecated

public class ibati***ception extends runtimeexception

public ibati***ception(string message)

public ibati***ception(string message, throwable cause)

public ibati***ception(throwable cause)

}

實際上,ibati***ception 已經在 2015 年被廢棄,取代它的是 persistenceexception 類。

2.2 ibati***ception

org.apache.ibatis.exceptions.persistenceexception ,繼承 ibati***ception 類,目前 mybatis 真正的異常基類。**如下:

public class persistenceexception extends ibati***ception 

public persistenceexception(string message)

public persistenceexception(string message, throwable cause)

public persistenceexception(throwable cause)

}

2.3 exceptionfactory

org.apache.ibatis.exceptions.exceptionfactory ,異常工廠。**如下:

public class exceptionfactory 

public static runtimeexception wrapexception(string message, exception e)

}

2.4 toomanyresult***ception

org.apache.ibatis.exceptions.toomanyresult***ception ,繼承 persistenceexception 類,查詢返回過多結果的異常。期望返回一條,實際返回了多條。**如下:

public class toomanyresult***ception extends persistenceexception 

public toomanyresult***ception(string message)

public toomanyresult***ception(string message, throwable cause)

public toomanyresult***ception(throwable cause)

}

2.5 parsingexception

org.apache.ibatis.parsing.parsingexception ,繼承 persistenceexception 類,解析異常。**如下:

public class parsingexception extends persistenceexception 

public parsingexception(string message)

public parsingexception(string message, throwable cause)

public parsingexception(throwable cause)

}

reflection 包:reflectionexception

logging 包:logexception

builder 包:builderexception、incompleteelementexception

scripting 包:scriptingexception

binding 包:bindingexception

type 包:typeexception

session 包:sqlsessionexception

cache 包:cacheexception

transaction 包:transactionexception

datasource 包:datasourceexception

executor 包:resultmapexception、executorexception、batchexecutorexception

plugin 包:pluginexception

Mybatis 原始碼分析

mybatis解析 2 sqlsessionfactorybean 繼承了 initializingbean 介面,在bean解析的finishbeanfactoryinitialization 的方法對 initializingbean介面中的 afterpropertiesset 方法進行呼叫,...

Mybatis原始碼分析

我們都知道mybatis它是一款優秀的持久層框架,它支援定製化sql 儲存過程以及高階對映,幫我們節省了許多時間與精力,今天我們主要來對mybatis的底層原始碼進行分析,主要是以下4行 首先呼叫resources中的單個string引數的getresuorceasstream string res...

MyBatis 原始碼分析

sqlsession inte ce,代表乙個連線資料庫的會話,提供了乙個預設的 defaultsqlsession sqlsessionfactory inte ct,建立 sqlsessionfactory 的工廠,提供了預設的 defaultsqlsessionfactory建立 defaul...