Mybatis常用标签
ResultMap基本使用
适合使用返回值是自定义实体类的情况,映射实体类的数据类型
id:resultMap的唯一标识,column: 库表的字段名,property: 实体类里的属性名
<resultMap type="RuralWarning" id="RuralWarningResult">
<result property="id" column="id" />
<result property="waterId" column="water_id" />
<result property="userName" column="userName" />
<result property="userNumber" column="user_number" />
<result property="problemDescribtion" column="problem_describtion" />
<result property="iphone" column="iphone" />
<result property="address" column="address" />
<result property="submitTime" column="submit_time" />
<result property="handlerName" column="handlerName" />
<result property="result" column="result" />
<result property="handleTime" column="handle_time" />
</resultMap>
ResultType使用
resultType可以直接返回给出的返回值类型,比如String、int、Map,等等,其中返回List也是将返回类型定义为Map,然后mybatis会自动将这些map放在一个List中,resultType还可以是一个对象,
<select id="getLogCount" resultType="int">
select COUNT(*) from AttLog where attTime = #{attTime} and userId = #{userId};
</select>
mybatis collection ofType和javaType区别
ofType 用于多级联映射
javaType用于一对一映射
resultMap:适合使用返回值是自定义实体类的情况
resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型
MyBatis中标签的使用
使用进行一对多的查询
关联-association
用于一对一和多对一
sql片段标签
作用是:
通过该标签可定义能复用的sql语句片段,在执行sql语句标签中直接引用即可。
这样既可以提高编码效率,还能有效简化代码,提高可读性。
<!--定义sql片段-->
<sql id="selectRuralWarningVo">
select id, water_id, user_number, problem_describtion, iphone, address, submit_time, result, handle_time from rural_warning
</sql>
<include refid=“selectRuralWarningVo”/ 这个在MyBatis查询数据库的sql中经常会出现。作用相当于 * ,selectRuralWarningVo是固定的几个字段,而用*号的话会降低查询效率,因为后期数据库的字段会不断增加。
<select id="selectRuralWarningList" parameterType="RuralWarning" resultMap="RuralWarningResult">
<!--引用sql片段-->
<include refid="selectRuralWarningVo"/>
<where>
<if test="waterId != null and waterId != ''"> and water_id = #{waterId}</if>
<if test="userName != null and userName != ''"> and user_name = #{userName}</if>
<if test="userNumber != null and userNumber != ''"> and user_number = #{userNumber}</if>
<if test="problemDescribtion != null and problemDescribtion != ''"> and problem_describtion = #{problemDescribtion}</if>
<if test="iphone != null and iphone != ''"> and iphone = #{iphone}</if>
<if test="address != null and address != ''"> and address = #{address}</if>
<if test="submitTime != null "> and submit_time = #{submitTime}</if>
<if test="handlerName != null and handlerName != ''"> and handler_name = #{handlerName}</if>
<if test="result != null and result != ''"> and result = #{result}</if>
<if test="handleTime != null "> and handle_time = #{handleTime}</if>
</where>
</select>