yxhxj2006

          常用鏈接

          統計

          最新評論

          ibatis動態參數和集合參數配置

          iterate 

          // 此處必須要$,不能用#property<result property="" column=""/>    ibatis是輕量的ORM,類似于一個半自動化化數據操作框架。而hibernate是全自動的ORM。
              ibatis主要是讓實體類與數據庫的字段名稱一一對應,然后在xml編寫操作數據庫的SQL語句。
              ibatis數據庫操作主要包括增刪查改。
             主要包括:一:在代碼中:
                               通過sqlMapper.queryForList("sql_id",param),其中:sql_id就是我們在xml中編寫的sql語句id號(通過此id找到數據庫sql語句)
                               parm就是查詢條件參數值(一般是一個參數(也有兩個參數或者無參數)),參數值可以使對象,int或者String類型。
                          二:在xml編寫sql語句,主要包括增刪查改
                              在寫sql語句前,可以做一些其他的簡單說明:比如,類別名(類似給類弄一個簡稱,方法類以后使用),實體類與數據字段一一對應說明等等。
                              <sqlMap namespace="空間名稱">
                          <typeAlias alias="teacher" type="com.wsw.ibatis.bean.Teacher"/>        // 給類取一個別名,方便以后在后來使用。
                          <resultMap class="" id="">                                                             // 給返回的類定一個id號,以后就可以直接用該id表示這個類    
                          <result property="屬性名" column="數據庫字段名"/>                      // 返回的實體類的屬性與數據庫字段匹配,兩者名稱可相同或者不同 
                                         
          <result property="屬性名" column=" 數據庫字段名"/>
                          </resultMap>
                          <parameterMap class="" id="">                                                       // 參數類,用于執行sql的參數值,與上面的返回類不同。
                      <parameter property="屬性名" jdbcType="屬性類型"/>                                        
                          </parameterMap>
                             </sqlMap>
                            還有就是: parameterClass 表示參數類,用于做參數值。
                                          parameterClass  表示返回值類,用于返回值。
                                          在這種情況下 ,沒有把實體類屬性和數據庫的字段一一寫出,表示實體類屬性和數據庫的字段名稱和類型完全一致。
                         ----------------------------------------------------------------------------------------------------------------------------
                              (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):動態按照條件查詢 (如果需要循環迭代,最好用list,不要用數組)
                                                 <!-- 按照提交參數記錄 -->
          <select id="selectSomeTeacher" parameterClass="com.wsw.ibatis.bean.Teacher"                                                                   resultClass="com.wsw.ibatis.bean.Teacher" >
                                                      select * from teacher 
                                          <dynamic prepend="WHERE">                 // 表示動態
                                        <isNotEmpty prepend="AND" property="username">        // isNotEmpty 表示如果非空,property表示類屬性名
                                        <![CDATA[ username in ]]>        
                                                                                <iterate conjunction="," open="(" close=")" property="username" >  // iterate 表示迭代
                                                      $usernames[]$              // 此處必須要$,不能用#                     // 迭代必須是集合list 千萬不能
                                                  </iterate>                                                                                             //是數組
                                         <![CDATA[]]>
                                                          </isNotEmpty>
          <isNotEmpty prepend="AND" property="age">
          (age = #age#)                              // 此處最好用#,不要用$
          </isNotEmpty>
          </dynamic>
          </select>
            

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


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


          網站導航:
           
          主站蜘蛛池模板: 万全县| 西充县| 盘山县| 周口市| 房山区| 综艺| 西林县| 健康| 河南省| 阳西县| 石林| 任丘市| 枣强县| 莱西市| 浦城县| 泽普县| 新平| 共和县| 芒康县| 邢台市| 马关县| 龙陵县| 新田县| 会昌县| 长白| 岑巩县| 兰溪市| 麦盖提县| 永宁县| 宁远县| 乌拉特中旗| 寿阳县| 永仁县| 界首市| 临湘市| 南川市| 鄂伦春自治旗| 安塞县| 麻阳| 东丽区| 姜堰市|