今天使用mybatis開發公司中台項目踩的一個坑,分享並記錄一下 踩坑前因:因項目中比較多狀態字段,用了大量的Integer 0和1進行判斷 在功能做完后只是粗略的點了下覺得沒多大問題(來自程序員強大的自信),便提交了代碼,很不巧的是剛好領導在做功能測試,發現了功能缺陷,主角來了: 在做牧戶 ...
在mybatis框架中進行參數非空或者字符串比較判斷時: lt if test mnyType gt 因為mybatis是用OGNL表達式解析的,在OGNL表達式中 會被解析成字符串,又因為Java是強類型的,char和string會導致不相等,所以 if 標簽中的SQL不會被解析。 因此單個字符要寫到雙引號里面或者使用 .toString 才可以,比如正確的寫法如下 lt if test mny ...
2020-04-02 09:38 0 3846 推薦指數:
今天使用mybatis開發公司中台項目踩的一個坑,分享並記錄一下 踩坑前因:因項目中比較多狀態字段,用了大量的Integer 0和1進行判斷 在功能做完后只是粗略的點了下覺得沒多大問題(來自程序員強大的自信),便提交了代碼,很不巧的是剛好領導在做功能測試,發現了功能缺陷,主角來了: 在做牧戶 ...
下邊看一下mybatis的映射文件。 <insert id="AddTeacher" parameterType="com.mycompany.entity.Teacher"> <selectKey keyProperty="count" resultType="int ...
1、if標簽語法 注意:條件表達式中大於號小於號用 gt,lt mapper xml代碼: mapper 接口代碼: ...
一:List<UserVo> list(@Param("nickName") String nickName); <select id="list" resultMap="Resu ...
問題場景 需求如下:需要根據傳入的單個字符串進行判斷 在此時物料type傳遞"1"還是"2",這個<if>都不會生效,還會報錯。 原因分析 是mybatis是用OGNL表達式來解析的,在OGNL的表達式中,'1'或'2'這種類的都會被解析成字符,而java又是 ...
昨天在使用mybatis的if判斷integer時遇見一個小問題: 我發現前段同事調用接口的時候傳參總是無法進入條件, 原來mybatis的if將0認為是'',所以這樣判斷是無法進入條件的,將數字換為1,2之類的就可以了; ...
使用mybatis框架在寫sql的時候碰到一個異常: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version ...
...