MyBatis案例八:动态sql:set

MyBatis案例八:动态sql:set

  1. 接口方法:
public int updateByExample(Dept dept);
  1. mapper:
<update id="updateByExample">
		update dept		
		<trim prefix="set" suffixOverrides=",">
			<if test="dname != null">
				dname = #{dname},
			</if>
			<if test="loc != null">
				loc = #{loc},
			</if>
		</trim>
		where deptno = #{no}
	</update>

3.测试类:

	@Test
	public void testUpdateByExample() throws IOException {
		int n = mapper.updateByExample(new Dept(12,"人力资源部", "上海"));

		session.commit();// 提交事务
		System.out.println(n);
	}

4.改进:set

<update id="updateByExample">
		update dept		
		<set>
			<if test="dname != null">
				dname = #{dname},
			</if>
			<if test="loc != null">
				loc = #{loc},
			</if>
		</set>
		where deptno = #{no}
	</update>

练习:动态sql:动态插入

  1. 接口方法:
public int insertByExample(Dept dept);
  1. mapper:
<insert id="insertByExample">
		insert into dept
		<trim prefix="(" suffix=")" suffixOverrides=",">
			deptno,
			<if test="dname != null">
				dname,
			</if>
			<if test="loc != null">
				loc,
			</if>
		</trim>
		values
		<trim prefix="(" suffix=")" suffixOverrides=",">
			#{no},
			<if test="dname != null">
				#{dname},
			</if>
			<if test="loc != null">
				#{loc},
			</if>
		</trim>
	</insert>
  1. 测试代码中:
	@Test
	public void testInsertByExample() throws IOException {
		int n = mapper.insertByExample(new Dept(13, "hr", null));

		session.commit();// 提交事务
		System.out.println(n);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值