Mybatis使用相关

1. dao中的参数一定要加@Param

	List<HeadLine> queryHeadLine(@Param("headLineCondition") HeadLine headLineCondition);

**2. resultType是查询结果返回的实体类,**有参数就要加parameterType="long"就是参数的类型

<select id="queryHeadLineByIds" resultType="com.imooc.o2o.entity.HeadLine"
		parameterType="long">

3. 查询使用

<where>
			<if test="headLineCondition.enableStatus!=null">
				and enable_status = #{headLineCondition.enableStatus}
			</if>
</where>

4. foreeach使用

dao中:

List<HeadLine> queryHeadLineByIds(@Param(lineId) List<Long> lineIdList);

传入的参数是集合

xml中:

	WHERE line_id IN
	<foreach collection="list" item="lineId" open="(" separator=","
			close=")">
			#{lineId}
	</foreach>

说明:item集合中每一个元素进行迭代时的别名,
index表示在迭代过程中,每次迭代到的位置,
open该语句以什么开始,
separator在每次进行迭代之间以什么符号作为分隔 符,
close以什么结束,
在使用foreach的时候最关键的也是最容易出错的就是collection属性,
该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,
主要有一下3种情况:

  1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
    
  2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
    
  3. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了
    

5. 插入使用

Mybatis 配置文件 useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。

#{lineName}貌似可以直接使用headLine里的属性

	int insertHeadLine(HeadLine headLine);
	<insert id="insertHeadLine" useGeneratedKeys="true" keyProperty="lineId"
		keyColumn="line_id">
		INSERT INTO
		tb_head_line(line_name,line_link,line_img,priority,
		enable_status,
		create_time,last_edit_time)
		VALUES
		(#{lineName},#{lineLink},#{lineImg},#{priority},
		#{enableStatus},#{createTime},#{lastEditTime})
	</insert>

dao调用了这个方法后,对象就会自动保存新增的id属性了。(理解)

6. update使用

	<update id="updateHeadLine" parameterType="com.imooc.o2o.entity.HeadLine">
		update tb_head_line
		<set>
			<if test="lineName != null">line_name=#{lineName},</if>
			<if test="lineLink != null">line_link=#{lineLink},</if>
			<if test="lineImg != null">line_img=#{lineImg},</if>
			<if test="priority != null">priority=#{priority},</if>
			<if test="enableStatus != null">enable_status=#{enableStatus},</if>
			<if test="lastEditTime != null">last_edit_time=#{lastEditTime}</if>
		</set>
		where line_id=#{lineId}
	</update>

7. delete使用

	<delete id="deleteHeadLine">
		DELETE FROM
		tb_head_line
		WHERE
		line_id =
		#{lineId}
	</delete>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值