【共享中間件】知識點雜記

1、@TargetDataSource

基於springboot開箱即用的多數據源動態調整插件,在service層使用註解@TargetDataSource(“ds1”)可以直接切換數據源,如果不使用,調用默認配置的數據源

2、mybaits中,setting的的配置參數如下(如果不在配置文件中配置將使用默認值)

設置參數 描述 有效值 默認值
cacheEnabled 該配置影響的所有映射器中配置的緩存的全局開關 true | false true
lazyLoadingEnabled 延遲加載的全局開關。當開啓時,所有關聯對象都會延遲加載。 特定關聯關係中可通過設置fetchType屬性來覆蓋該項的開關狀態 true | false false
aggressiveLazyLoading 當啓用時,對任意延遲屬性的調用會使帶有延遲加載屬性的對象完整加載;反之,每種屬性將會按需加載。 true | false true
multipleResultSetsEnabled 是否允許單一語句返回多結果集(需要兼容驅動)。 true | false true
useColumnLabel 使用列標籤代替列名。不同的驅動在這方面會有不同的表現, 具體可參考相關驅動文檔或通過測試這兩種不同的模式來觀察所用驅動的結果。 true | false true
useGeneratedKeys 允許 JDBC 支持自動生成主鍵,需要驅動兼容。 如果設置爲 true 則這個設置強制使用自動生成主鍵,儘管一些驅動不能兼容但仍可正常工作(比如 Derby)。 true | false False
autoMappingBehavior 指定 MyBatis 應如何自動映射列到字段或屬性。 NONE 表示取消自動映射;PARTIAL 只會自動映射沒有定義嵌套結果集映射的結果集。 FULL 會自動映射任意複雜的結果集(無論是否嵌套)。 NONE, PARTIAL, FULL PARTIAL
defaultExecutorType 配置默認的執行器。SIMPLE 就是普通的執行器;REUSE 執行器會重用預處理語句(prepared statements); BATCH 執行器將重用語句並執行批量更新。 SIMPLE REUSE BATCH SIMPLE
defaultStatementTimeout 設置超時時間,它決定驅動等待數據庫響應的秒數。 Any positive integer Not Set (null)
defaultFetchSize Sets the driver a hint as to control fetching size for return results. This parameter value can be override by a query setting. Any positive integer Not Set (null)
safeRowBoundsEnabled 允許在嵌套語句中使用分頁(RowBounds)。 true | false False
mapUnderscoreToCamelCase 是否開啓自動駝峯命名規則(camel case)映射,即從經典數據庫列名 A_COLUMN 到經典 Java 屬性名 aColumn 的類似映射。 true | false False
localCacheScope MyBatis 利用本地緩存機制(Local Cache)防止循環引用(circular references)和加速重複嵌套查詢。 默認值爲 SESSION,這種情況下會緩存一個會話中執行的所有查詢。 若設置值爲 STATEMENT,本地會話僅用在語句執行上,對相同 SqlSession 的不同調用將不會共享數據。 SESSION | STATEMENT SESSION
jdbcTypeForNull 當沒有爲參數提供特定的 JDBC 類型時,爲空值指定 JDBC 類型。 某些驅動需要指定列的 JDBC 類型,多數情況直接用一般類型即可,比如 NULL、VARCHAR 或 OTHER。 JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER OTHER
lazyLoadTriggerMethods 指定哪個對象的方法觸發一次延遲加載。 A method name list separated by commas equals,clone,hashCode,toString
defaultScriptingLanguage 指定動態 SQL 生成的默認語言。 A type alias or fully qualified class name. org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver
callSettersOnNulls 指定當結果集中值爲 null 的時候是否調用映射對象的 setter(map 對象時爲 put)方法,這對於有 Map.keySet() 依賴或 null 值初始化的時候是有用的。注意基本類型(int、boolean等)是不能設置成 null 的。 true | false false
logPrefix 指定 MyBatis 增加到日誌名稱的前綴。 Any String Not set
logImpl 指定 MyBatis 所用日誌的具體實現,未指定時將自動查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING Not set
proxyFactory 指定 Mybatis 創建具有延遲加載能力的對象所用到的代理工具。 CGLIB | JAVASSIST JAVASSIST (MyBatis 3.3 or above)
常用的一些配置
<configuration>
	<settings>
		<setting name="jdbcTypeF
orNull" value="NULL" />
		<!--也可以使用自己的日誌類-->
        <!--<setting name="logImpl" value="net.sjt.config.MyBatisLogger"/>-->
		<setting name="logImpl" value="SLF4J" />
		<setting name="mapUnderscoreToCamelCase" value="true" />
		<setting name="defaultExecutorType" value="BATCH" />
	</settings>
</configuration>

3、@WebFilter

@WebFilter 用於將一個類聲明爲過濾器,該註解將會在部署時被容器處理,容器將根據具體的屬性配置將相應的類部署爲過濾器。該註解具有下表給出的一些常用屬性 ( 以下所有屬性均爲可選屬性,但是 value、urlPatterns、servletNames 三者必需至少包含一個,且 value 和 urlPatterns 不能共存,如果同時指定,通常忽略 value 的取值 )

@ClassName: FilterDemo01
@Description:filter的三種典型應用:

1、可以在filter中根據條件決定是否調用chain.doFilter(request, response)方法, 即是否讓目標資源執行
2、在讓目標資源執行之前,可以對request\response作預處理,再讓目標資源執行
3、在目標資源執行之後,可以捕獲目標資源的執行結果,從而實現一些特殊的功能

4、java中可以讓程序暫停幾秒執行的代碼 Thread.sleep (1000);//停留1秒

5、MySQL 中 BETWEEN AND 的邊界是左閉右閉

6、xml文件中的小於號的問題

在xml裏,不能用 < , >,= 之類的符號。一般都是用下面的字符來代替<、>、=,如下所示:

原符號 < <= > >= = & "
替換符號 &lt; &lt;= &gt; &gt;= = &amp; &apos; &quot;

6、MySQL時間

取當前天:

select CONCAT(date_sub(curdate(),interval 1 day),' 00:00:00');
select CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' 00:00:00');

取前一天:

select date_sub(curdate(),interval 1 day);

取所給時間的年月日

SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());
SELECT YEAR('2019-03-05'),MONTH('2019-03-05'),DAY('2019-03-05');
SELECT CONCAT(YEAR('2019-03-05'),MONTH('2019-03-05'),DAY('2019-03-05'));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章