MyBatis动态sql作业

1. 接口

//000000000000000000000000000000000000000000   动态sql作业  0000000000000000000000000000000000000

  //使用if的接口
  List<User> IfFindBynameorage(User user);
  // trim完成where元素的功能
  List<User> TrimWhere(User user);
  // trim完成set元素的功能
  int TrimSet(User user);

2. 映射文件

  <!--000000000000000000000000000000000000000000   动态sql作业  0000000000000000000000000000000000000-->

    <!--使用if-->
    <select id="IfFindBynameorage" parameterType="com.houjinqiao.pojo.User" resultType="com.houjinqiao.pojo.User">
    select * from users where 1=1
        <if test="uname != null and uname != ''">
            and uname like concat('%',#{uname},'%')
        </if>
        <if test="uage != null and uage != ''">
            and uage = #{uage}
        </if>
    </select>
    <!--使用<trim>标签完成where的功能-->
    <select id="TrimWhere" parameterType="com.houjinqiao.pojo.User" resultType="com.houjinqiao.pojo.User">
        select * from users
        <trim prefix="where" prefixOverrides="and">
            <if test="uname != null and uname != ''">
                and uname like concat('%',#{uname},'%')
            </if>
            <if test="uage != null and uage != ''">
                and uage = #{uage}
            </if>
        </trim>
    </select>
    <!--使用<trim>标签完成set的功能-->
    <update id="TrimSet" parameterType="com.houjinqiao.pojo.User">
        update users
        <trim prefix="set" suffixOverrides=",">
            <if test="uname != null and uname != ''">
                uname =  #{uname},
            </if>
            <if test="uage != null and uage != ''">
                uage = #{uage},
            </if>

        </trim>
        where uid = #{uid}
    </update>

3. 测试类

//000000000000000000000000000000000000000000   动态sql作业  0000000000000000000000000000000000000



    //使用if标签
    @Test
    public void IfFindBynameorage() throws IOException {
        SqlSession sqlSession = MyBatisUtils.getSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User();
        user.setUname("梅西");
        List<User> user1 = mapper.IfFindBynameorage(user);
        System.out.print(user1);
        sqlSession.commit();
        sqlSession.close();
    }
    //使用<trim>标签完成where的功能
    @Test
    public void trimwhere() throws IOException {
        SqlSession sqlSession = MyBatisUtils.getSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User();
        user.setUname("梅西");
        List<User> user1 = mapper.TrimWhere(user);
        System.out.print(user1);
        sqlSession.commit();
        sqlSession.close();
    }
    //使用<trim>标签完成set的功能
    @Test
    public void trimset() throws IOException {
        SqlSession sqlSession = MyBatisUtils.getSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User();
        user.setUname("内马尔");
        user.setUage(31);
        user.setUid(3);
        mapper.TrimSet(user);
        sqlSession.commit();
        sqlSession.close();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学者山羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值