mybatis 返回string mybatis中參數(shù)為枚舉類型時怎么辦?
mybatis中參數(shù)為枚舉類型時怎么辦?一直用hibernate,習慣了枚舉類的使用,非常方便,現(xiàn)在用mybatis,發(fā)現(xiàn)枚舉的處理,還是需要單獨處理下。如果想使用mybatis自帶的枚舉類處理,有2
mybatis中參數(shù)為枚舉類型時怎么辦?
一直用hibernate,習慣了枚舉類的使用,非常方便,現(xiàn)在用mybatis,發(fā)現(xiàn)枚舉的處理,還是需要單獨處理下。如果想使用mybatis自帶的枚舉類處理,有2種方式,一個是EnumTypeHandler,一個是EnumOrdinalTypeHandler。2者的區(qū)別是EnumTypeHandler直接存儲name值,而EnumOrdinalTypeHandler會存儲enum類里的序號值,此時數(shù)據(jù)庫表字段一般用int類型的處理。使用方式比較簡單,直接在mapper文件里的字段上,加上typeHandler="org.apache.ibatis.type.EnumOrdinalTypeHandler"
mybatis in接收參數(shù)?
使用List<String> 將參數(shù)傳入
一般情況下,select xx where in(x,x)查詢,返回結(jié)果按主鍵排序,如果你要按in()中值的排順,則使用下面的語句
select * from talbe where id in(1,2,3,4) ORDER BY FIND_IN_SET( id, ′1,2,3,1′)
那么在配置中可以使用下面的方式進行參數(shù)的傳遞:
mybatis傳入string參數(shù),parametertype怎樣寫?
MyBatis的傳入?yún)?shù)parameterType類型分兩種:
1. 1. 基本數(shù)據(jù)類型:int,string,long,Date
1. 2. 復雜數(shù)據(jù)類型:類和Map。
如何獲取參數(shù)中的值:
2.1 基本數(shù)據(jù)類型:#{參數(shù)} 獲取參數(shù)中的值;
2.2 復雜數(shù)據(jù)類型:#{屬性名} ,map中則是#{key}。
基本數(shù)據(jù)類型案例:
復雜數(shù)據(jù)類型案例:
mybatis取傳進來的參數(shù)mybatis#{}${}區(qū)別是啥?
#{} : 表示一個占位符
${} : 表示字符拼接 , 會引起sql注入風險, 不推薦大家使用
演示:name 的值為 zhangsan
select * from user where name = #{name}
select * from user where name = ${name}
但是 #{} 和 ${} 在預編譯中的處理是不一樣的。#{} 在預處理時,會把參數(shù)部分用一個占位符 ? 代替,變成如下的 sql 語句:
select * from user where name = ?
而 ${} 則只是簡單的字符串替換,在動態(tài)解析階段,該 sql 語句會被解析成
select * from user where name = "zhangsan"