mybatis 取查詢值 mybatis取值筆記

2021-10-13 01:31:18 字數 1512 閱讀 7472

1、單個引數

public emp getemp(integer id);

取值:id==>#

select * from tbl_employee where id = #

2、多個引數

(1).public emp getemp(integer id,string lastname);

取值:id==>#,lastname==>#

select * from tbl_employee where id = # and last_name = #

(2).public employee getempbyidandlastname(@param("id")integer id,@param("lastname")string lastname);

取值:id==>#,lastname==>#

select * from tbl_employee where id = # and last_name = #

(3).public emp getemp(@param("id")integer id,string lastname);

取值:id==>#或者#,lastname==>#

select * from tbl_employee where id = # and last_name = #

(4).public emp getemp(integer id,@param("e")string lastname);

取值:id==>#,lastname==>#或者#

select * from tbl_employee where id = # and last_name = #

##特別注意:如果是collection(list,set)型別或者陣列,是把傳入的list或者陣列封裝在map中。

key: collection(collection),如果是list還可以用key(list)陣列(array)

public emp getempbyid(list ids);

取值:取出第乙個id的值,#

**********==結合原始碼,理解一下**********==

引數只有乙個的時候,就拿第乙個。這樣#取什麼名無所謂。

引數為多個,就會把所有的引數放在map中,可以用@param來指定map的key。

#{}可以獲取map中的值或者pojo物件的屬性的值;

${}可以獲取map中的值或者pojo物件的屬性的值;

區別:#{}是以預編譯的形式,將引數設定到sql語句中;${}取出的值直接拼在sql語句中,會有安全問題。

大多數情況下,取引數用#{}。

原生sql不支援佔位符的地方,使用${}取值。比如分表:select * 某個表名,排序的字段值,order by 字段值等只能用${}。

**********====jdbctype*****=

由於全域性變數中:jdbctypefornull = other;oracle不支援這個,所以會報錯「無效列型別」jdbctype:other;

解決辦法兩種:1.在# 2.在全域性變數中

mybatis呼叫儲存過程獲得取返回值

文章目錄 前言 一 service層 二 dao層 三 map.xml 總結mybatis呼叫儲存過程的一種寫法記錄 override public returnmsg checkonlinebookout mapparam param mapparams new hashmap params.pu...

mybatis中文條件查詢時,不返回值

解決方案如下 一 資料庫安裝後,編碼沒設定,設定成utf 8就好了,修改配置檔案,最簡單的完美修改方法,修改mysql的my.cnf檔案中的字符集鍵值 注意配置的字段細節 1 在 client 欄位裡加入default character set utf8,如下 1 2 3 4 client por...

mybatis批量查詢

今天在用mybatis寫乙個查詢操作,需求是根據userid去查表查出其使用者名稱username,返回使用者名稱username與userid即可。由於可能包含多個userid,因此把userid的值封裝到map中,再把map新增的list裡。public list findusername st...