MyBatis复习
一、备忘常识
ResultMap和ResultType:ResultType直接表示返回类型,ResultMap则是外部引用。相比ResultType,ResultMap适用于配置较为复杂的查询。
1234567891011<resultMap type="Comment" id="CommentResult"><association property="blog" select="selectBlog" column="blog" javaType="Blog"/></resultMap><select id="selectComment" parameterType="int" resultMap="CommentResult">select * from t_Comment where id = #{id}</select><select id="selectBlog" parameterType="int" resultType="Blog">select * from t_Blog where id = #{id}</select>MyBatis的@Param和Spring的@Param:两个注解功能几乎相同,但是在编写相应XML文件时存在差别,spring中的@param在XML中按照变量顺序引用。
12345678<select id="selectRoleCount" resultType="java.lang.Integer" >selectcount(tbm.id)from t_business_member_relation tbmwhere tbm.business_id = #{0,jdbcType=INTEGER}and tbm.member_id = #{1,jdbcType=INTEGER}and tbm.role_business_id is not null</select>SpringMVC的传参方式
- @PathVariable:
对应@RequestMapping(value=”/owners/{ownerId}”,method,RequestMethod.GET) - @RequestParam:
包含3个配置 @RequestParam(required = ,value=””, defaultValue = “”) - @CookieValue:获取cookie信息
- @RequestHeader:获取请求的头部信息
- @RequestBody:接收Json对象的字符串,而不是Json对象
二、Mybatis表达式注意点
- if标签使用的是OGNL表达式
- OGNL对于Boolean的定义和JavaScript有点像,即
'' == 0 == false
,只有String类型才需要判断是否!=''
,其余判断是否!=null
即可。 - 单引号内为单个字符时,OGNL会识别为Char类型,所以判断String是否为非空且等于单字符长度的字符串时,需要使用双引号而非单引号。