yxhxj2006

          常用鏈接

          統(tǒng)計

          最新評論

          ibatis動態(tài)參數(shù)和集合參數(shù)配置

          iterate 

          // 此處必須要$,不能用#property<result property="" column=""/>    ibatis是輕量的ORM,類似于一個半自動化化數(shù)據(jù)操作框架。而hibernate是全自動的ORM。
              ibatis主要是讓實體類與數(shù)據(jù)庫的字段名稱一一對應(yīng),然后在xml編寫操作數(shù)據(jù)庫的SQL語句。
              ibatis數(shù)據(jù)庫操作主要包括增刪查改。
             主要包括:一:在代碼中:
                               通過sqlMapper.queryForList("sql_id",param),其中:sql_id就是我們在xml中編寫的sql語句id號(通過此id找到數(shù)據(jù)庫sql語句)
                               parm就是查詢條件參數(shù)值(一般是一個參數(shù)(也有兩個參數(shù)或者無參數(shù))),參數(shù)值可以使對象,int或者String類型。
                          二:在xml編寫sql語句,主要包括增刪查改
                              在寫sql語句前,可以做一些其他的簡單說明:比如,類別名(類似給類弄一個簡稱,方法類以后使用),實體類與數(shù)據(jù)字段一一對應(yīng)說明等等。
                              <sqlMap namespace="空間名稱">
                          <typeAlias alias="teacher" type="com.wsw.ibatis.bean.Teacher"/>        // 給類取一個別名,方便以后在后來使用。
                          <resultMap class="" id="">                                                             // 給返回的類定一個id號,以后就可以直接用該id表示這個類    
                          <result property="屬性名" column="數(shù)據(jù)庫字段名"/>                      // 返回的實體類的屬性與數(shù)據(jù)庫字段匹配,兩者名稱可相同或者不同 
                                         
          <result property="屬性名" column=" 數(shù)據(jù)庫字段名"/>
                          </resultMap>
                          <parameterMap class="" id="">                                                       // 參數(shù)類,用于執(zhí)行sql的參數(shù)值,與上面的返回類不同。
                      <parameter property="屬性名" jdbcType="屬性類型"/>                                        
                          </parameterMap>
                             </sqlMap>
                            還有就是: parameterClass 表示參數(shù)類,用于做參數(shù)值。
                                          parameterClass  表示返回值類,用于返回值。
                                          在這種情況下 ,沒有把實體類屬性和數(shù)據(jù)庫的字段一一寫出,表示實體類屬性和數(shù)據(jù)庫的字段名稱和類型完全一致。
                         ----------------------------------------------------------------------------------------------------------------------------
                              (1):增:     <insert id="addTeacher" parameterClass="com.wsw.ibatis.bean.Teacher">
                                                     insert into teacher (id,username, age)values (#id#,#username#,#age#)
                                                  </insert>
                                       
                              (2):刪:   <delete id="deleteAccountById" parameterClass="String">
          delete from teacher where id = #id#
          </delete>

                             (3):改: <update id="updateTeacher" parameterClass="com.wsw.ibatis.bean.Teacher">
          update teacher set username=#username#,age= #age# where id=#id#
          </update>

                             (4):查:    <!-- 查找某一條記錄 -->
                                          <select id="selectTeacherById" parameterClass="int" resultClass="com.wsw.ibatis.bean.Teacher">
                                      select * from teacher where id = #id#
          </select>
                                                 <!-- 查詢所有記錄 -->
                                          <select id="selectAllTeacher" resultClass="com.wsw.ibatis.bean.Teacher">
          select * from teacher
          </select>
                        ===============================================================================================
                              (5):動態(tài)按照條件查詢 (如果需要循環(huán)迭代,最好用list,不要用數(shù)組)
                                                 <!-- 按照提交參數(shù)記錄 -->
          <select id="selectSomeTeacher" parameterClass="com.wsw.ibatis.bean.Teacher"                                                                   resultClass="com.wsw.ibatis.bean.Teacher" >
                                                      select * from teacher 
                                          <dynamic prepend="WHERE">                 // 表示動態(tài)
                                        <isNotEmpty prepend="AND" property="username">        // isNotEmpty 表示如果非空,property表示類屬性名
                                        <![CDATA[ username in ]]>        
                                                                                <iterate conjunction="," open="(" close=")" property="username" >  // iterate 表示迭代
                                                      $usernames[]$              // 此處必須要$,不能用#                     // 迭代必須是集合list 千萬不能
                                                  </iterate>                                                                                             //是數(shù)組
                                         <![CDATA[]]>
                                                          </isNotEmpty>
          <isNotEmpty prepend="AND" property="age">
          (age = #age#)                              // 此處最好用#,不要用$
          </isNotEmpty>
          </dynamic>
          </select>
            

          posted on 2012-08-31 00:19 奮斗成就男人 閱讀(5150) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 安西县| 朝阳市| 德格县| 巴林左旗| 翼城县| 汉中市| 宁武县| 苍溪县| 海原县| 和硕县| 靖宇县| 长子县| 葫芦岛市| 郧西县| 安阳县| 怀宁县| 库尔勒市| 尖扎县| 察隅县| 青阳县| 锡林浩特市| 什邡市| 临猗县| 会东县| 瑞金市| 班戈县| 金华市| 理塘县| 伊金霍洛旗| 泸水县| 苏尼特右旗| 平江县| 阜新| 望江县| 肇庆市| 开远市| 肃北| 康保县| 霍山县| 上犹县| 乌兰察布市|