iterate
// 此處必須要$,不能用#property<result property="" column=""/> ibatis是輕量的ORM,類似于一個(gè)半自動(dòng)化化數(shù)據(jù)操作框架。而hibernate是全自動(dòng)的ORM。 ibatis主要是讓實(shí)體類與數(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ù)值(一般是一個(gè)參數(shù)(也有兩個(gè)參數(shù)或者無參數(shù))),參數(shù)值可以使對象,int或者String類型。 二:在xml編寫sql語句,主要包括增刪查改 在寫sql語句前,可以做一些其他的簡單說明:比如,類別名(類似給類弄一個(gè)簡稱,方法類以后使用),實(shí)體類與數(shù)據(jù)字段一一對應(yīng)說明等等。 <sqlMap namespace="空間名稱"> <typeAlias alias="teacher" type="com.wsw.ibatis.bean.Teacher"/> // 給類取一個(gè)別名,方便以后在后來使用。
<resultMap class="" id=""> // 給返回的類定一個(gè)id號,以后就可以直接用該id表示這個(gè)類
<result property="屬性名" column="數(shù)據(jù)庫字段名"/>
// 返回的實(shí)體類的屬性與數(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í)體類屬性和數(shù)據(jù)庫的字段一一寫出,表示實(shí)體類屬性和數(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):動(dòng)態(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"> // 表示動(dòng)態(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>