MyBatis的引數傳遞 獲取的方式

2021-09-29 06:20:59 字數 2173 閱讀 2751

引數傳遞的方式:

可以接受基本型別,包裝型別,字串型別等。這種情況mybatis可直接使用這個引數,不需要經過任何處理。

/**

* 根據id查詢使用者資訊

* @param id

* @return

*/public user getuserbyid(integer id);

select * from user where id=# 

@test

public void t1()

任意多個引數,都會被mybatis重新包裝成乙個map傳入。map的key是param1,param2,或者0,1…,值就是引數的值

/**

* 根據使用者名稱密碼查詢使用者的資訊,傳遞多個引數

* @param username

* @param password

* @return

*/public user getuserbyusernameandpassword(string username,string password);

select * from user where username=# and password =# 

@test

public void t2()

為引數使用@param起乙個名字,mybatis就會將這些引數封裝進map中,key就是我們自己指定的名字

/**

* 不同引數

* @param lastname

* @param email

* @return

*/public employee queryempbylastnameandemail(@param("ln")string lastname,@param("em")string email);

select id,last_name,email from tbl_employee where last_name =# and email=#

當這些引數屬於我們業務pojo時,我們直接傳遞pojo

/**更新使用者資訊

* * @param user

* @return

*/public int updateuser(user user);

update user set username=#, password =# ,email=# where id=# 

我們也可以封裝多個引數為map,直接傳遞

/**

* 根據map中的引數查詢使用者資訊,

* @param map

* @return

*/public user getuserbymap(mapmap);

select * from user where username=# and password =# 

@test

public void t7()

會被mybatis封裝成乙個map傳入, collection對應的key是collection,array對應的key是array. 如果確定是list集合,key還可以是list。

#

#:獲取引數的值,預編譯到sql中。安全。

$:獲取引數的值,拼接到sql中。有sql注入問題。

但是並不是說$這種方式就不用了,#的使用範圍是在where條件之後使用,但是若order by、group by、from後面是可變的引數的時候,只能使用${}的形式進行拼接

select * from $ where username=#  

/**

* 根據map中的引數查詢使用者資訊,

* @param map

* @return

*/public user getuserbytable(mapmap);

MyBatis的引數傳遞

select from student order by limit 介面 studentdao 檔案 預設引數傳遞 public listfind string sort,string dir,int start,int limit 註解方式引數傳遞 public listfind2 param ...

MyBatis引數傳遞的問題

來自 最近碰到mybatis傳參的一些問題,經過一番 問題是解決了。現對mybatis傳參進行下整理,權當做個筆記。一 單個簡單引數 public item getitembyid string id select t.c id,t.c name from titem t where t.c id ...

mybatis的mapper引數傳遞

簡單引數傳遞是指 actor selectactorbyid long id select id selectactorbyid resulttype canger.study.chapter04.bean.actor select actor id as id,first name as firs...