亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Mybatis動態(tài)sql

 更新時間:2016年04月19日 11:29:35   作者:xiaoerduo123x  
MyBatis的動態(tài)SQL是基于OGNL表達式的,它可以幫助我們方便的在SQL語句中實現(xiàn)某些邏輯。本文給大家介紹Mybatis動態(tài)sql小結,感興趣的朋友參考下

1.什么是mybatis動態(tài)sql

看到動態(tài),我們就應該想到,這是一個可以變化的sql語句

MyBatis的動態(tài)SQL是基于OGNL表達式的,它可以幫助我們方便的在SQL語句中實現(xiàn)某些邏輯

2.mybatis動態(tài)sql使用前準備

a.數(shù)據庫表

b.創(chuàng)建類

3.使用mybatis動態(tài)sql,得先知道一些屬性值

一,插入

selectKey:在sql語句前后或后執(zhí)行的sql語句

keyColumn:對應字段名或別名

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

order:在執(zhí)行語句前或后執(zhí)行

resultType:返回結果的類型

第一種方式:最簡單的動態(tài)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這個字段的時候,我們是可以實現(xiàn)的

現(xiàn)在為題又來了,如果我們想把最后一個字段變?yōu)榭?,或者兩個字段都變?yōu)榭盏臅r候,會出現(xiàn)什么情況

最后一個字段變?yōu)榭?/p>

控制臺第一個問號后面好像多了一個逗號

兩個字段都變?yōu)榭赵囋?/p>

還是多了一個逗號

出現(xiàn)上面這種情況的原因是,在不想插入字段的時候,我們并沒有把逗號去掉,所有現(xiàn)在介紹第三種方式

第三種方式,去掉多余的逗號

這種方式要引入trim

trim也有幾種屬性

prefix:添加前綴

prefixOverrides:覆蓋前綴

suffix:添加后綴

suffixOverrides:覆蓋后綴

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

看,問題解決了

在做項目的時候,我們經常對數(shù)據庫進行插入數(shù)據,有時候我們會想同時插入多條,那么,在使用mybatis我們該怎么樣插入多條數(shù)據呢

在這里,我們要解決幾個問題

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', '數(shù)據結構06' from dual union
select '7', 'yc07', '數(shù)據結構07' from dual union
select '8', 'yc08', '數(shù)據結構08' from dual

現(xiàn)在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動態(tài)sql的全部內容,希望對大家有所幫助!

相關文章

  • java中的文件操作總結(干貨)

    java中的文件操作總結(干貨)

    本篇文章主要介紹了java中的文件操作總結(干貨),主要有文件讀寫,遍歷文件夾,文件夾操作等,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Java設計模式中的簡單工廠模式解析

    Java設計模式中的簡單工廠模式解析

    這篇文章主要介紹了Java設計模式中的簡單工廠模式解析,簡單工廠模式提供一個創(chuàng)建對象實例的功能,而無須關心其具體實現(xiàn),被創(chuàng)建實例的類型可以是接口、抽象類,也可以是具體的類,需要的朋友可以參考下
    2023-11-11
  • 使用springmvc參數(shù)接收boolean類型參數(shù)的問題

    使用springmvc參數(shù)接收boolean類型參數(shù)的問題

    這篇文章主要介紹了使用springmvc參數(shù)接收boolean類型參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot中的@ControllerAdvice使用方法詳細解析

    SpringBoot中的@ControllerAdvice使用方法詳細解析

    這篇文章主要介紹了SpringBoot中的@ControllerAdvice使用方法詳細解析, 加了@ControllerAdvice的類為那些聲明了@ExceptionHandler、@InitBinder或@ModelAttribute注解修飾的 方法的類而提供的專業(yè)化的@Component,以供多個 Controller類所共享,需要的朋友可以參考下
    2024-01-01
  • 解析Spring Mvc Long類型精度丟失問題

    解析Spring Mvc Long類型精度丟失問題

    在平時開發(fā)過程中,經常會使用long類型作為id的類型,但是在使用過程中會導致long類型數(shù)據轉換為number類型時的后兩位變?yōu)?,今天小編給大家分享Spring Mvc Long類型精度丟失問題,需要的朋友參考下吧
    2021-06-06
  • Java 基礎之內部類詳解及實例

    Java 基礎之內部類詳解及實例

    這篇文章主要介紹了 Java 基礎之內部類詳解及實例的相關資料,需要的朋友可以參考下
    2017-03-03
  • mybatis初始化SqlSessionFactory失敗的幾個原因分析

    mybatis初始化SqlSessionFactory失敗的幾個原因分析

    這篇文章主要介紹了mybatis初始化SqlSessionFactory失敗的幾個原因分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 挑戰(zhàn)4道Java試題

    挑戰(zhàn)4道Java試題

    這篇文章主要為大家分享了4道Java基礎題,幫助大家鞏固基礎知識,夯實java基礎技能,感興趣的朋友快點挑戰(zhàn)
    2015-12-12
  • SpringBoot整合EasyExcel的完整過程記錄

    SpringBoot整合EasyExcel的完整過程記錄

    easyexcel是阿里巴巴旗下開源項目,主要用于Excel文件的導入和導出處理,下面這篇文章主要給大家介紹了關于SpringBoot整合EasyExcel的完整過程,需要的朋友可以參考下
    2021-12-12
  • java網上圖書商城(3)Book模塊

    java網上圖書商城(3)Book模塊

    這篇文章主要為大家詳細介紹了java網上圖書商城,Book模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論