亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

通過自動回復機器人學Mybatis---基礎版

難度中級
時長 4小時30分
學習人數
綜合評分9.73
430人評價 查看評價
9.9 內容實用
9.7 簡潔易懂
9.6 邏輯清晰
  • 亂碼排查: 1. servlet傳參時的編碼:request.setCharacterEncoding("utf-8");或直接使用過濾器; 2. Java文件本身的編碼; 3. 鏈接數據庫的參數中,設定編碼方式:jdbc:mysql://192.168.1.1:3306/cms?characterEncoding=utf-8 4. 數據庫、表的編碼; 5. 展示頁面的編碼:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> useGeneratedKeys屬性設為true,可獲取自增長的id
    查看全部
    0 采集 收起 來源:常見問題解析

    2018-03-22

  • 判斷是否是好代碼:
    查看全部
  • resultMap與resultType屬性都是表示結果集與java對象之間的關系.但要注意兩者區別. 如果用了resultType屬性就不用在Sql配置文檔中配置<resultMap>標簽. resultType映射的原理是:如果映射到自定義類,那么javabean中的屬性名與查詢出來的列名相同的時候就表示他們有映射關系(大小寫不敏感,也不用考慮同名列名的問題),結果集就會放進這些javabean的屬性中. resultType也可以映射到Map中,那么查詢的列名就是key值,數據就是value值. resultMap屬性="要映射的<resultMap>標簽的id值" resultType屬性="要映射的java類" <select id="find" resultMap="resultMessage"> select * from message </select> <select id="find" resultType="com.imooc.Message"> select * from message </select> //此時就不需要配置<resultMap>標簽.
    查看全部
  • resultMap:在XML配置的map,若不配置,只能按列名與對象的屬性名來對應填充,不區分大小寫 resultType:Java對象 parameterMap:不推薦使用 #{}:有預編譯,可防sql注入, ${}:無預編譯,直接拼接參數,字符串無引號;
    查看全部
  • resultMap:在XML配置的map,若不配置,只能按列名與對象的屬性名來對應填充,不區分大小寫 resultType:Java對象 parameterMap:不推薦使用 #{}:有預編譯,可防sql注入, ${}:無預編譯,直接拼接參數,字符串無引號;
    查看全部
  • 容易混淆的概念
    查看全部
  • Mybatis前世今生
    查看全部
  • 一、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的方式
    查看全部
  • mybatis常用的標簽,其中select查詢時不應該使用*號而是使用各列名,sql用來定義常量,多用于定義經常使用到的列名,然后通過include標簽引用
    查看全部
    0 采集 收起 來源:常用標簽

    2016-11-27

  • Ps1: <where><if test=""></if>...</where>標簽相當于“where 1=1 and...”,<where>標簽和where 1=1不可共存,兩者取其一即可。 Ps2: <select> select <include refid="columns"></include> from command </select> <sql id="columns">a.id C_ID,b.id,b.commandId</sql> //作用:增強了維護性,減少代碼復用。 Ps3: //解析:<trim>標簽在<select>/<update>等內使用。prefix在sql語句最前面加上,suffix在sql語句最后面加上,去掉sql語句最前面prefixOverrides,去掉sql語句最后面suffixOverrides。 <trim prefix="where" suffix="test" prefixOverrides="andor" suffixOverrides=","> //sql語句 </trim> 提示:prefix="where" prefixOverrides="andor"等價于<where>;prefix="set" suffixOverrides=","等價于<set>。 Ps4: <choose> <when test=""></when> <when test=""></when> <otherwise></otherwise> </choose> 理解1:if—else if—else 理解2:switch—case—case—default Ps5: <collection property="主實體類中的List<子實體類>的對象名" resultMap="子xml中mapper中屬性namespace名.resultMap的id名"/>//這條語句寫在主xml<resultMap>中。 <association property="子實體類中的主實體類的對象名" resultMap="主xml中mapper中屬性namespace名.resultMap的id名"/>//這條語句寫在子xml<resultMap>中。
    查看全部
    0 采集 收起 來源:常用標簽

    2018-03-22

  • Mybatis常用標簽 用到sql標簽時 需要配合使用include標簽
    查看全部
    0 采集 收起 來源:常用標簽

    2016-11-27

  • 在子表類的Sql配置文檔的<resultMap>標簽下需要添加一個<association>標簽來指明當前子表這個類里包含著一個主表類類型的成員變量. 其中<assoication>標簽有property、column(可無)、javaType屬性、resultMap屬性. property屬性指明在子表類中的主表類類型的成員變量名. column屬性指明數據庫中的字段. javaType屬性指明主表類的類名. resutlMap屬性指明主表類的<resultMap>標簽的id屬性的屬性值. 在<association>標簽下有<id>與<result>子標簽,他們都有property與column屬性.來表明主表類的所有成員變量.或者直接用resultMap屬性直接替代,就可以不用寫子標簽. (在子表的Sql配置文件) <resultMap type="com.imooc.Content" id="Content"> <id column="ID" jdbcType="Integer" property="id"/> <result column="Content" jdbcType="VARCHAR" property="content"/> <result column="CommandId" jdbcType="Integer" property="commandId"/> <association property="command" javaType="com.imooc.Command"> <id column="CID" property="id"/> <result column="name" property="name"/> <result column="description" property="description" /> </association> </resultMap> 等于: <resultMap type="" id=""> <id column="" jdbcType="" property=""/> <result column="" jdbcType="" property=""/> <association property="" resultMap="" /> </resultMap>
    查看全部
  • 且當select u.name from User as u,column屬性不能寫成u.name,不能帶表名.因為在jdbc的ResultSet接口根據列名獲取數據的方法中,根據的列名是沒有表名前綴的.因此表名前綴會失效. 所以在Mybatis一對多關聯的Sql配置文檔下的<select>標簽的sql語句不能出現兩個字段名相同的查詢.否則在相關聯的不同Sql配置文件的<resultMap>標簽下的其他標簽的column屬性就會重復,Mybatis并不知道這個重復的字段是屬于哪個表的.所以要不起別名,要不設計數據庫不同表之間不能出現同名的列名. 要不設置別名: <select id="getMessageCom" resultMap="resultMapCom"> select a.id as cid,a.name,a.description,b.id,b.content from command as a left join content as b on a.id=b.commandid </select> 要不就設計表時列名不重復: <select id="getMessageCom" resultMap="resultMapCom"> select a.cid,a.name,a.description,b.id,b.content from command as a left join content as b on a.id=b.commandid </select>
    查看全部
  • 1.<select>標簽中查詢出來的類名要和<resultMap>中的column屬性值一致。但規定<resultMap>的column屬性值不能寫成“表名.列名”,而是直接寫數據庫中的列名或別名。 2.如果兩個表中都有ID屬性,但因為規定<resultMap>的column屬性值不能寫成“表名.列名”,這時候要怎么辦呢?可以用別名來代替。 在主表類的Sql配置文檔的<resultMap>標簽下需要添加一個<collection>標簽來指明我當前主表這個類里包含著子表類的集合.其中<collection>標簽下存在property屬性與resultMap屬性.沒有column屬性,因為在數據庫表中不會額外創建一個此集合的字段.property屬性表示主表類中哪個屬性名,resultMap屬性要指明包含的子表類的Sql配置文件的<resultMap>標簽的id值. <resultMap type="com.imooc.Command" id="Command"> <id column="CID" jdbcType="Integer" property="id"/> <result column="Name" jdbcType="VARCHAR" property="name"/> <result column="Description" jdbcType="VARCHAR" property="description"/> <collection property="contentlist" resultMap="Content.content"/> //因為是跨文件所以要namespace.id </resultMap> 特別要注意的是column屬性對應數據庫表的字段名意思是與select子句選擇的字段名匹配起來.如果select u.name as username from User as u; 雖然在數據庫表中的字段名是name,但是select子句為name字段設置了別名,即username,因此在<resultMap>標簽下的<result>標簽的column屬性要等于username而并非name,是與select子句中的名稱匹配,要注意當設置了別名那么column屬性也為別名
    查看全部
  • 如何在xml的配置文件中反應表結構之間的對應關系呢? 在java中,通過主表的實體類中包含子表的集合來反應一對多的關系,在配置文件中同樣是通過集合來配置這種關系的。在主表的映射文件中使用<collection>標簽來指定子表的對應關系以及子表的引用,使用resultMap屬性來指定子表映射關系的文件,格式是namespace.子表對應關系的id。那么新的問題來了,主表中的id與子表中的id,同時映射到結果集resultMap就會產生問題,所以就需要給任意一個id起一個別名。注意:給表起別名,以及字段的引用,打印出的結果是不包含表名的,比如說 a.id,打印出的結果是沒有a的,所以a.id與b.id映射的都是一個屬性,所以給字段起一個別名,那么字段名就會改變,配置映射文件的時候,注意數據庫字段與java實體類的屬性的對應關系。
    查看全部

舉報

0/150
提交
取消
課程須知
各位小伙伴們需要有一定Java Web開發基礎,至少需要掌握以下內容: 1、JSP、Servlet、JSTL、EL 2、JS/JQUERY 3、JDBC 如果你還是新人,建議先移步網站相關課程,在理解并掌握相關知識之后再回來進修
老師告訴你能學到什么?
1、 Mybatis 的下載與配置 2、 Mybatis 的基本功能應用 3、 融合 Mybatis 的一個完整小案例的實戰 4、 Mybatis 的特征總結 5、 Mybatis 常見 QA

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!