學習mybatis第五天

2021-10-06 08:00:38 字數 4175 閱讀 8595

什麼是動態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...