一、問題描述:
使用spring @transaction事務時,在for迴圈中需要多次執行同一查詢語句,第一次查詢出物件後,對物件進行修改後,結果再進行第二次查詢的時候,查詢返回的資料是自己第一次修改後的資料。因為業務需要每次查詢都需要取更改資料庫,以後的查詢都會根據上一次迴圈修改後的值進行操作。
二、解決方法:
在xml檔案 select語句新增 flushcache="true" ,告訴mybatis查詢結束後重新整理快取,不記錄查詢結果到一級快取中
三、原因:
mybatis有一級快取和二級快取,mybatis對查詢的語句會存在一級快取中,如果在乙個事務中,mybatis對同乙個session多次查詢同乙個sql語句就會去找快取而不是再去查一次資料庫
select * from table t where t.id not in (select id from table2)
-->
select a.* from table1 a left join table2 b on a.id = b.id where b.id is null;
-->
select a.* from table1 a left join table2 b on a.id = b.id where b.id is not null;
string.format()字串常規型別格式化的兩種過載方式
format(string format, object… args) 新字串使用本地語言環境,制定字串格式和引數生成格式化的新字串。
format(locale locale, string format, object… args) 使用指定的語言環境,制定字串格式和引數生成格式化的字串。
轉換符 詳細說明 示例
%s 字串型別 「喜歡請收藏」
%c 字元型別 『m』
%b 布林型別 true
%d 整數型別(十進位制) 88
%x 整數型別(十六進製制) ff
%o 整數型別(八進位制) 77
%f 浮點型別 8.888
%a 十六進製制浮點型別 ff.35ae
%e 指數型別 9.38e+5
%g 通用浮點型別(f和e型別中較短的) 不舉例(基本用不到)
%h 雜湊碼 不舉例(基本用不到)
%% 百分比型別 %(%特殊字元%%才能顯示%)
%n 換行符 不舉例(基本用不到)
%tx 日期與時間型別(x代表不同的日期與時間轉換符) 不舉例(基本用不到)
高階功能:
標誌 說明 示例 結果
第乙個例子中有說到 %tx x代表日期轉換符 我也順便列舉下日期轉換符
標誌 說明 示例
c 包括全部日期和時間資訊 星期六 十月 27 14:21:20 cst 2007
f 「年-月-日」格式 2007-10-27
d 「月/日/年」格式 10/27/07
r 「hh:mm:ss pm」格式(12時制) 02:25:51 下午
t 「hh:mm:ss」格式(24時制) 14:28:16
r 「hh:mm」格式(24時制) 14:28
用org.apache.commons.io這個包中的類
1.m轉f
file file = new file(path);
fileutils.copyinputstreamtofile(multipartfile.getinputstream(), file);
2.f轉m
file file = new file("src/test/resources/input.txt");
fileinputstream input = new fileinputstream(file);
multipartfile multipartfile =new mockmultipartfile("file", file.getname(), "text/plain", ioutils.tobytearray(input));
字串實現原理通過該類實現的。
stringbuffer可以對字串內容進行增刪。
stringbuffer是個容器。是字串緩衝區。
很多方法與string相同。
stringbuffer是可變長度。
容器的特點:
長度可變化,可以操作多個型別,最終可以通過tostring( )轉換為字串。
刪除。stringbuffer delete( start, end ):刪除緩衝區的資料,包含start,不包含end。
stringbuffer deletecharat( index ):刪除指定位置的字元。
獲取。char charat( int index )
int indexof( string str )
int lastindexof( string str)
int length( )
string substring(int start, int end)
修改。stringbuffer replace(int start, int end)
void setcharat(int index, char ch)
反轉。stringbuffer reverse( );
將緩衝區的指定的資料儲存到指定字元陣列中。
void getchars( int srcbegin, int srcend, char[ ] dst, int dstbegin)
每日記載內容總結34
1.資料庫以及伺服器方面 1 檢視電腦中 sql server 版本 1 select version 2 go 2 1.資料庫日期格式化 select id,nickname,addtime,date format addtime,h i s date format addtime,y m d f...
每日記載內容總結31
1.頁面知識 1 js去除乙個元素的點選方法 document.getelementbyname aaa onclick function 2 jquery獲取元素的父元素和查詢滿足條件的子元素 li value 1 span em em a.從不 span li one li span click...
每日記載內容總結4
1.回車實現div內按鈕的click事件 searcharea keydown function e if e.keycode else if e.which if code 13 日前,又發現更簡單的方法,親測可用相容ie6 7 8 9 10以及firefox chrome 為 searchare...