1.mybatis中的sql语句占位符采用的是#{对应实体的字段名}
select id,username,age,sex from student where id=#{id}
ibatis中的sql语句占位符采用的是#对应实体的字段名#
select id,username,age,sex from student where id=#id#
2.mybatis中支持ognl表达式。例如<if test>使用ognl表达式来解析的
<select id="findById" ...>
select id,username,age,sex from student
<where>
<if test="username != null and username != ''">
username like concat('%', #{username}, '%')
</if>
</where>
</select>
ibatis中不支持ognl表达式。使用的是:
<select id="findById" parameterClass="StudentDomain" resultMap="StudentDomain">
select id,username,age,sex from student
<dynamic prepend = "where">
<isNotEmpty prepend=" and " property ="id"> id = #id# </isNotEmpty>
<isNotEmpty prepend=" and " property ="username"> username = #username# </isNotEmpty>
<isNotEmpty prepend=" and " property ="sex"> sex = #sex# </isNotEmpty>
<isNotEmpty prepend=" and " property ="age"> age = #age# </isNotEmpty>
</dynamic>
<isNotEmpty prepend=" group by " property ="groupBy"> $groupBy$ </isNotEmpty>
<isNotEmpty prepend=" order by " property ="orderBy"> $orderBy$ </isNotEmpty>
</select>
<update id="updateStudentByWhere" parameterClass="StudentDomain">
update student
<dynamic prepend = "set">
<isNotEmpty prepend=" and " property ="id"> id = #id# </isNotEmpty>
<isNotEmpty prepend=" and " property ="username"> username = #username# </isNotEmpty>
<isNotEmpty prepend=" and " property ="sex"> sex = #sex# </isNotEmpty>
<isNotEmpty prepend=" and " property ="age"> age = #age# </isNotEmpty>
</dynamic>
where
<isEmpty prepend="" property="where"> id=#id# </isEmpty>
<isNotEmpty prepend="" property="where"> $where$ </isNotEmpty>
</update>
3.mybatis中在<mapper>中编写sql语句
ibatis中<sqlMap>