什麼是動態sql:動態sql就是根據不同的條件生成不同的sql語句
利用動態sql這一特性可以徹底擺脫這種痛苦
動態sql元素和jstl或基於型別似xml的文字處理器相似。在mybatis之前的版本中,有很多元素需要花時間了解,mybatis3大大精簡了元素種類,現在只需學習原來一半的元素便可,mybatis採用功能強大的基於ognl的表示式來淘汰其它大部分元素搭建環境ifchoose(when,otherwise)
trim(where,set)
foreach
use mybatis;
create
table
`blog`
(`id`
varchar(50
)not
null
comment
'部落格id'
,`title`
varchar
(100
)not
null
comment
'部落格標題'
,`author`
varchar(30
)not
null
comment
'部落格作者'
,`create_time`
datetime
notnull
comment
'建立時間'
,`views`
int(30)
notnull
comment
'瀏覽量'
)engine
=innodb
default
charset
=utf8
建立乙個基礎工程
1.導包
2.編寫配置檔案
3.編寫實體類
namespace
=>
"addblog"
parametertype
="blog"
>
insert into blog(id,title,author,create_time,views) values(#,#,#,#,#);
insert
>
"queryblogif"
parametertype
="map"
resulttype
="blog"
>
select * from blog where 1 =1
test
="title != null"
>
and title = #
if>
test
="author != null"
>
and author = #
if>
select
>
>
"queryblogchoose"
parametertype
="map"
resulttype
="blog"
>
select * from blog
>
>
test
="title!=null"
>
title = #
when
>
test
="author!=null"
>
author = #
when
>
>
views = #
otherwise
>
choose
>
where
>
select
>
"queryblogif"
parametertype
="map"
resulttype
="blog"
>
select * from blog
>
test
="title != null"
>
and title = #
if>
test
="author != null"
>
and author = #
if>
where
>
select
>
所謂的動態sql,本質還是sql語句,只是我們可以在sql層面去執行乙個邏輯**
有的時候,我們可能會將一些功能的部分抽取出來,方便復用
1、使用sql標籤抽取公共的部分
sql id="if-title-author">
>
test
="title != null"
>
and title = #
if>
test
="author != null"
>
and author = #
if>
where
>
sql>
2、在需要使用的地方使用include標籤引用即可
"queryblogif"
parametertype
="map"
resulttype
="blog"
>
select * from blog
refid
="if-title-author"
>
include
>
select
>
動態sql就是在拼接sql語句,我們只要保證sql的正確性,按照sql的格式,去排列組合就可以了
"queryblogforeach"
parametertype
="map"
resulttype
="blog"
>
select * from blog
>
collection
="ids"
item
="id"
open
="and ("
close
=")"
separator
="or"
>
id = #
foreach
>
where
>
select
>
查詢 : 連線資料庫,耗資源!1.什麼是快取【cache】? 一次查詢的結果,給他暫存在乙個直接取到的地方! -->記憶體 : 快取
我們再次查詢相同資料的時候,直接走快取,就不用走資料庫了
2、為什麼使用快取?
3、什麼樣的資料庫能使用快取?
快取失效的情況:
sqlsession.
clearcache()
;
小結:一級快取預設是開啟的,只在一次sqlseesion中有效,也就是拿到連線到關閉這個區間段!
步驟:1,開啟全域性快取
name
="cacheenabled"
value
="true"
/>
eviction
="fifo"
flushinterval
="60000"
size
="512"
readonly
="true"
>
cache
>
3.測試
如果cache沒有引數 實體類就要被序列化小結:
所有的資料都會先放在一級快取中
只有會話提交,或者關閉的時候,才會提交到二級快取中
學習第五天
清楚測試用例是什麼 測試用例的重要性 有效性 測試用例是測試人員測試過程中的重要參考依據,準確的測試用例的計畫 執行和跟蹤是 測試的有效性的有力證明 可復用性 設計良好的測試用例可以重複執行,能節約時間,提高測試效率 易組織性 清晰詳細的測試用例能夠便於測試執行的開展 可評估性 測試用例的通過率是檢...
Java學習第五天
當類載入器需要載入某個類時,類載入器會在載入初始化後生成該類的乙個類物件 class 用於描述該類的元資料資訊等。在其後的連線過程中,會初始化該類的靜態成員 變數或靜態初始化器 靜態初始化變數和初始化器按照先後順序執行初始化。例如 static int a 10 static 這樣初始化後a 100...
C 學習第五天
c 中的is和as is可用於任何型別。例如 int a 10 a is object true object o 10 o is int true o person o is int false as右側型別必須為引用型別或可空型別。as操作如果失敗,不丟擲異常,而是返回null 結構 struc...