Mybatis中的数据绑定

parameterType:入参类型,指明传进来的参数是什么类型的,可写可不写,
resultType:返回值类型,指明SQL语句执行结束后返回怎样的数据类型

1,绑定单个参数时:

方法的参数只有一个时,形参名和#{}中的参数名,可以不一样,
但是为了程序的可读性,通常写成一样的。

例如:
dao方法如下:

public void delete(Integer id);

xml文件如下:

<delete id="delete" parameterType="java.lang.Integer">
		delete from category where cid = #{id}
	</delete>

2、绑定多个参数时:

使用Param注解给参数起个名字,可以在mapper文件中直接使用。

dao方法,方法名如下:

/**
	 * 根据用户名和密码查询用户
	 * @param username
	 * @param password
	 */
	public User selectByNameAndPwd(@Param("username")String username,@Param("password")String password);

xml文件如下:

<select id="selectByNameAndPwd" resultType="com.macw.entity.User">
		select * from t_user where username = #{username} and password = #{password}
	</select>

3. 参数是一个实体类型对象

当参数类型为实体类型时,在mapper文件中获取属性,直接#{属性名}即可

dao方法,方法名如下:

/**
	 * 更新
	 * @param u
	 */
	public void update(User u);

xml文件如下:

<update id="update" parameterType="com.macw.entity.User">
		update t_user set password = #{password} where username = #{username}
	</update>

4. 使用序列生成主键(只在使用oracle数据库中)

Insert into t_xxx values(seq_xxx.nextval,?,?,?);
可以在执行插入之后,立刻获取id主键的值。
xml文件如下:

<insert id="insert" parameterType="com.macw.entity.Category">
		<selectKey keyProperty="cid" resultType="java.lang.Integer" order="BEFORE">
			select seq_cate.nextval from dual
		</selectKey>
		
		insert into category values(#{cid},#{cname},#{cdesc},#{remark})
	</insert>

keyProperty="cid“ :意思是使用cid属性接收selectKey标签SQL语句执行后的结果
order=“BEFORE” : 意思是指明selectKey子标签中的SQL语句先于select标签中的SQL语句执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清如许.

整理不易,点滴助力就是不竭动力

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

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

打赏作者

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

抵扣说明:

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

余额充值