mybatis中mapper类型的XML

来源:互联网 发布:双色球霸主软件怎么样 编辑:程序博客网 时间:2024/04/26 02:48

<typeAlias >标签用于定义类别名

如:<typeAliasalias="users" type="com.map.UserObj"/>

关联查询使用<association>标签:

两种方式:

一:<association property="husband" javaType="HusbandBean">
<result property="id" column="hid" javaType="java.lang.Integer"/>
<result property="husbandName" column="hhusband" javaType="java.lang.String"/>
</association>

二:<association property="husband" column="fk_husband_id" select="com.lovo.my.dao.IHusbandMapper.getHusbandBeanById" javaType="HusbandBean"/>

使用时:引用<resultMap>的id即可。

代码如下:

一:<select id="queryWifeAndHusband" resultMap="wifeAndHusbandMap">
select w.id as wid,w.wife as wwife,h.id as hid,h.husband as hhusband from t_wife as w,t_husband as h where h.id = w.fk_husband_id and w.id = #{id}
</select>


二:<select id="queryWifeAndHusband" resultMap="wifeAndHusbandMap">
select * from t_wife where id = #{id}
</select>

批量操作和foreach标签

批量删除

<deleteid="delMore">

  delete from t_user where u_id in(

  <foreach collection="ids"item="id" separator=",">

  #{id}

  </foreach>

  )

  </delete>

collection为用于遍历的元素(必选),支持数组、List、Set
item表示集合中每一个元素进行迭代时的别名.
index指定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,
separator表示在每次进行迭代之间以什么符号作为分隔符.
close表示以什么结束.
动态SQL
当查询条件需要动态生成时,需要使用动态SQL

<selectid="dynaFindUser" resultMap="user">

  select * from t_user where 1=1

  <iftest="id != 0">

  and u_id > #{id}

  </if>

  <if test="userName != null and userName != ''">

  and u_userName like '%${userName}%'

  </if>

  </select>

List list= session.selectList("dynaFindUser",newUserBean(0,"张"));



0 0
原创粉丝点击