-
一、resultMap和resultType:當配置resultType時,就不需要配置resultMap,看似resultType方便,但是會被受限制,沒有resultMap開放多。
相同點:都是表示查詢結果集的類型。
不同點:
resultMap需要手動配置映射關系,而resultType是直接指定java類型或者自定義的實體類型,查詢結果集的列名必須和實體屬性名稱一致(實體類:名稱大小寫可以忽略;java類型,如Map集合的key大小寫要一致,盡量都大小寫規范,如果不放心可以select ID id,...)。
優缺點:
1、resultType結果集列名要與java屬性名一樣,但是resultMap不受限制,因為resultMap有column來規定。
2、由于SQL類型與Java中類型部分不匹配,resultMap可以通過typeHandler=""來匹配(如:SQL中的0和1來表示java中的false和true;Date類型的轉換),但是resultType無能為力。
二、parameterMap和patameterType:
表示傳入參數的對應關系,前者不推薦使用,只是mybatis為了適應以前的版本。
提示:看到Map字眼的想到映射關系,看到Type字眼的想到類型。三、#{}和${}:
相同點:都是用來作為占位符。
不同點:#{}在預編譯的時候會唄替換為?,而${}在預編譯的時候直接將變量的值替換進去,而且沒有引號(所以還要加上“'${...}'”),故一般都是用前者,個別情況會使用后者:如需進行排序,且排序字段為參數時可以使用${}(order by后面不喜歡被預編譯,所以使用${}更為恰當)。
四、#{}和ognl:在#{}中如果是基本類型,其中的名稱可以隨便寫(不推薦),但一般都用_parameter,因為值唯一,而ognl中必須寫成_parameter的方式。查看全部 -
關于PrintWrite.write()返回的是亂碼的原因是沒有給responses設置編碼,加上resp.setCharacterEncoding("UTF-8");查看全部
-
xml配置文件中部分符號需要轉義
&????-->????????&
"?????-->????????"
查看全部 -
查看全部
-
查看全部
-
不同namespace下的id可以相同
resultMap對應相關的實體類,id的命名不可重復。
主鍵用id,其他字段用result。
<mapper?namespace="Message"> ?<resultMap?type="com.imooc.bean.Message"?id="MessageResult"> ????<id?column="id"?jdbcType="INTEGER"?property="id"/> ????<result?column="username"?jdbcType="VARCHAR"?property="username"/> ????<result?column="password"?jdbcType="VARCHAR"??????????????????????????????property="password.encrypted"/> ????<result?column="administrator"?jdbcType="BOOLEAN"?property="administrator"/> ??</resultMap> ??<select?id="queryMessageList"?parameterType="long"?resultMap="UserResult"> ???select?ID,COMMAND,DESCRIPTION,CONTENT?from?message?where?1?=1 ??</select> </mapper>
sqlSession通過namespace下的id查找對應的SQL語句
sqlSession?=?dbAccess.getSqlSession(); sqlSession.selectList("Message.queryMessageList");
查看全部 -
url設置編碼
查看全部 -
課程準備:段子手的mybatis的課程的基本功
查看全部 -
mybatis配置核心查看全部
-
mybatis常用標簽
查看全部 -
jdbc:mysql://localhost:3306/mocro_message?characterEncoding=utf-8 記得加上數據庫的字符串的字符編碼查看全部
-
mybatis常見問題解析
查看全部 -
mybatis容易混淆的概念
查看全部 -
mybatis全部標簽工能與標簽名稱
查看全部 -
hidden?????
查看全部
舉報