您好,登錄后才能下訂單哦!
這篇文章主要介紹“MyBatis @Select注解怎么使用”,在日常操作中,相信很多人在MyBatis @Select注解怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MyBatis @Select注解怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
@Select注解的目的是為了取代xml中的select標簽,只作用于方法上面。
下面看一下@Select注解的源碼介紹:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Select { String[] value(); }
從上述可以看到兩點信息:
(1)@Select注解只能修飾方法
(2)@Select注解的值是字符數組。
所以,@Select注解的用法是這樣的:
@Select({ "select * from xxx", "select * from yyy" }) Person selectPersonById(Integer id);
雖然@Select注解的值是字符數組,但是真正生效的應該是最后那條SQL語句。這一點請大家要留意一下。
普通的字符串值,只能實現變量的替換功能,如下所示,
@Select("select * from t_person where id = #{id}") Person selectPersonById(Integer id);
如果要想實現復雜的邏輯判斷,則需要使用標簽,如下所示:
@Select("<script> select * from t_person where id = #{id} <when test='address !=null'> and address = #{address} </when> </script>") Person selectPersonById(Integer id);
其實,標簽并非是@Select注解專用的,其他的注解,例如@Insert,@Update等等,都可以使用的。
今天發現一個問題,使用標簽進行查詢語句的拼接時,逗號和引號老處理不好,所以在此記錄下,供以后參考
@Select("<script>" + " select * from tb_crowd_fund_person_record a,tb_crowd_fund_info b where b.id=a.crowd_fund_info_id " + " <if test='activeStatus != null and activeStatus != \"\"'> "+ " and b.active_status=#{activeStatus} " + " </if> " + " <if test='createUser != null and createUser != \"\"'> "+ " and a.create_user=#{createUser} " + " </if> " + "</script>") List<String> findByType(Map<String,String> map);
到此,關于“MyBatis @Select注解怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。