mybatis xml详解及示例

本文详细介绍了MyBatis XML配置文件中的各种属性及其使用场景,包括查询、更新操作的编写方式,动态SQL的实现方法,如条件判断、循环结构等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:主要介绍mybatis   xml文件的一般属性。

<select id="findUserAll" parameterType="com.zpkj.space.model.query.UserQuery"  resultType="com.zpkj.space.model.User">
    select * from user_t t WHERE '1'='1'
        <if test="name != null and name != ''">
            AND t.name LIKE CONCAT('%',#{name},'%')
        </if>
        <if test="adress != null and adress != ''">
            AND t.adress = #{adress}
        </if>
</select>

属性介绍:

     id:在命名空间的唯一标识,可以用来引用该语句。

     parameterType:将会传入这条语句的参数类型(完全限定名或别名)。

     parameterMap:一般是直接在mapper.xml文件中定义的映射

     resultMap:外部resultMap的命名引用,结果集的映射是mybatis最大的特性。

     resultType:返回期望类型类的完全限定名或别名。

个别sql介绍:

      左外连接介绍示例:

<select id="findUser" parameterType="com.zpkj.space.model.query.UserQuery"  resultType="com.zpkj.space.model.User">
    SELECT a.* FROM user_t a
    LEFT JOIN test_t b ON b.user_id = a.id
    WHERE a.pid = '1'
</select>

     <foreach>标签的运用:

<!--list里面存储的全部是id   如果List里面是对象 ,对象.属性-->
<select id="foreachTest" parameterType="java.util.List" resultType="com.zpkj.space.model.User">
    select * from user_t where id in
     <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
         #{item}
     </foreach>
 </select> 

     case then用法:

<select id="forCaseEnd"  resultType="com.zpkj.space.model.User">
    SELECT sum( CASE WHEN sex = '1' THEN
                  1 ELSE 0 END) as boys,
                  sum( CASE WHEN sex = '2' THEN
                  1 ELSE 0 END) as grils
    FROM user_t a
</select>

简单的增删改查:

<!-- 新增 User -->
<insert id="addUser" parameterType="com.zpkj.space.model.from.UserFrom">
    INSERT INTO user_t (
    id, name, adress
    )
    VALUES(
    #{id}, #{name}, #{adress}
    )
</insert>

<!-- 修改 User -->
<update id="updateUser" parameterType="com.zpkj.space.model.from.UserFrom">
    UPDATE user_t
    <set>
        <if test="name != null and name != ''">
            name = #{name},
        </if>
        <if test="adress != null and adress != ''">
            adress = #{adress},
        </if>
    </set>
    WHERE id = #{id}
</update>

<!-- 删除一个 User -->
<delete id="deleteUser" parameterType="string">
    DELETE FROM user_t WHERE id = #{id}
</delete>

     

     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值