程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 詳解Mybatis靜態sql

詳解Mybatis靜態sql

編輯:關於JAVA

詳解Mybatis靜態sql。本站提示廣大學習愛好者:(詳解Mybatis靜態sql)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解Mybatis靜態sql正文


1.甚麼是mybatis靜態sql

看到靜態,我們就應當想到,這是一個可以變更的sql語句

MyBatis的靜態SQL是基於OGNL表達式的,它可以贊助我們便利的在SQL語句中完成某些邏輯

2.mybatis靜態sql應用前預備

a.數據庫表

b.創立類

3.應用mybatis靜態sql,得先曉得一些屬性值

一,拔出

selectKey:在sql語句前後或後履行的sql語句

keyColumn:對應字段名或別號

keyProperty:對應實體類的屬性名或map的key值

order:在履行語句前或後履行

resultType:前往成果的類型

第一種方法:最簡略的靜態sql 拔出

insert into course values(seq_course.nextval,#{courseCode},#{courseName})
select max(id) currId from course

測試

測試成果

第二種方法:假如我不想拔出這麼多的字段,courseName這個字段我不想拔出,那末第一種這類方法,確定是不可的

insert into course(id,
courseCode,
courseName
)
values(seq_course.nextval,
#{courseCode},
#{courseName}
)

測試及成果


因而可知,這類方法,在我不想拔出courseCode這個字段的時刻,我們是可以完成的

如今為題又來了,假如我們想把最初一個字段變成空,或許兩個字段都變成空的時刻,會湧現甚麼情形

最初一個字段變成空

掌握台第一個問號前面似乎多了一個逗號

兩個字段都變成空嘗嘗

照樣多了一個逗號

湧現下面這類情形的緣由是,在不想拔出字段的時刻,我們並沒有把逗號去失落,一切如今引見第三種方法

第三種方法,去失落過剩的逗號

這類方法要引入trim

trim也有幾種屬性

prefix:添加前綴

prefixOverrides:籠罩前綴

suffix:添加後綴

suffixOverrides:籠罩後綴

id,
courseCode,
courseName
seq_course.nextval,
#{courseCode},
#{courseName}

看,成績處理了

在做項目標時刻,我們常常對數據庫停止拔出數據,有時刻我們會想同時拔出多條,那末,在應用mybatis我們該怎樣樣拔出多條數據呢

在這裡,我們要處理幾個成績

1.我們怎樣樣復制表構造

create table course02 as select * from COURSE

這個語句是否是很熟習,對的,course02這個表不只復制了course表的表構造,把course表的內容也復制出去了

2.我們怎樣樣只復制course的表構造,而不復制course表的內容呢

create table course03 as select * from COURSE where 1!=1;

3.那末停止拔出的時刻,是否是也是和這個一樣呢

insert into course03 select * from course;

謎底是一樣的

4.怎樣停止多條語句的拔出

insert into course03
select '6', 'yc06', '數據構造06' from dual union
select '7', 'yc07', '數據構造07' from dual union
select '8', 'yc08', '數據構造08' from dual

如今sql語句有了,我們便可以在設置裝備擺設文件中停止拔出操作了

insert into course
select #{courses.id},#{courses.courseCode},
#{courses.courseName} from dual

二,修正

1.應用trim,後面也曾經引見,應用trim可以去前綴,是由於有suffixOverrides這個屬性

update course set
courseCode=#{courseCode},
courseName=#{courseName} 
where id=#{id}

2.應用set,可以取代語句中的set,還可以去失落後綴

update course
courseCode=#{courseCode},
courseName=#{courseName} 
where id=#{id}

3.在修正的時刻我們也會有選擇性的修正,有時刻我們不想修正的值,讓其和沒有修正的值分歧

choose相當於多重if

第一個when相當於if,第二個when相當於else if

otherwise相當於else

update course
courseCode=#{courseCode},
courseCode=courseCode,
courseName=#{courseName},
courseName=courseName,
where id=#{id}

以上所述是小編給年夜家引見的Mybatis靜態sql的全體內容,願望對年夜家有所贊助!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved