mybaits foreach 使用笔记
1 foreach insert
<insert id="******">
INSERT INTO `foen-vue`.dorm_users
(dorm_id, user_id, status, create_by, create_time)
VALUES
<foreach collection ="userIds" item="userId" index= "index" separator =",">
(
#{dormId},#{userId},'0',#{createBy},sysdate()
)
</foreach >
</insert>
2 foreach in
<update id="******">
UPDATE `foen-vue`.dorm_users
SET status='1', update_by=#{updateBy}, update_time=sysdate()
WHERE
dorm_id = #{dormId}
and status = '0'
and user_id in
<foreach collection ="userIds" item="userId" index= "index" separator="," open="(" close=")">
#{userId}
</foreach>
</update>
一对多
<collection>标签:
主要用于加载关联的集合对象
select 属性:
用于指定查询 account 列表的 sql 语句,所以填写的是该 sql 映射的 id
column 属性:
用于指定 select 属性的 sql 语句的参数来源,上面的参数来自于 user 的 id 列,所以就写成 id 这一个字段名了
<resultMap id="userMap" type="org.example.domain.User">
<id property="id" column="id"></id>
<result property="username" column="username"></result>
<result property="sex" column="sex"></result>
<result property="birthday" column="birthday"></result>
<result property="address" column="address"></result>
<!--配置user对象中国accounts集合映射 延迟加载-->
<collection property="accounts" column="id" ofType="org.example.domain.Account" select="org.example.dao.AccountDao.findAllByUid">
</collection>
</resultMap>
一对一
select: 填写我们要调用的 select 映射的 id
column : 填写我们要传递给 select 映射的参数
<!-- 定义account和user的resultMap-->
<resultMap id="accountUserMap" type="org.example.domain.Account">
<id property="id" column="id"></id>
<result property="uid" column="uid"></result>
<result property="money" column="money"></result>
<!-- 一对一的关系映射: 配置封装user的内容 配置延迟加载-->
<association property="user" column="uid" javaType="org.example.domain.User" select="org.example.dao.UserDao.findById">
</association>
</resultMap>
resultMap 结果类型
<resultMap type="org.example.domain.User" id="userMap">
<id column="id" property="userId"/>
<result column="username" property="userName"/>
<result column="sex" property="userSex"/>
<result column="address" property="userAddress"/>
<result column="birthday" property="userBirthday"/>
</resultMap>
id 标签:用于指定主键字段
result 标签:用于指定非主键字段
column 属性:用于指定数据库列名
property 属性:用于指定实体类属性名称
网友评论