1、mybatis中没有<=号,必须用表示。
2、mysql分页语句的写法
3、主键冲突报错忽略添加ignore关键字
4、一对多联合查询,此处使用内联且Seckil为实体类名,不是表名字,进行映射。
<insert id="insertSuccessKilled">
INSERT **ignore** INTO success\_killed(seckill\_id,user\_phone,state)
VALUES (#{seckillId},#{userPhone},0)
</insert>
<!--根据id查询successKillId并携带seckill实体-->
<select id="queryByIdWithSeckill" resultType="org.seckill.entity.SuccessKilled">
SELECT
sk.seckill\_id,
sk.user\_phone,
sk.state,
sk.create\_time,
s.seckill\_id "Seckill.seckill\_id",
s.name "Seckill.name",
s.number "Seckill.number",
s.start\_time "Seckill.start\_time",
s.end\_time "Seckill.end\_time",
s.create\_time "Seckill.create\_time"
FROM success\_killed sk INNER JOIN seckill s ON sk.seckill\_id=s.seckill\_id
WHERE sk.seckill\_id=#{seckillId} and sk.user\_phone=#{userPhone}
</select>
5、mybatis接口注解使用实例,加mapper注解
@Mapper
public interface OrderDao {
@Select("select \* from seckill\_order where user\_id=#{userId} and goods\_id=#{goodsId}")
public SecKillOrder getMiaoshaOrderByUserIdGoodsId(@Param("userId")long userId, @Param("goodsId")long goodsId);
@Insert("insert into order\_info(user\_id, goods\_id, goods\_name, goods\_count, goods\_price, order\_channel, status, create\_date)values("
+ "#{userId}, #{goodsId}, #{goodsName}, #{goodsCount}, #{goodsPrice}, #{orderChannel},#{status},#{createDate} )")
@SelectKey(keyColumn="id", keyProperty="id", resultType=long.class, before=false, statement="select last\_insert\_id()")//此处返回刚插入的主键id
public long insert(OrderInfo orderInfo);
@Insert("insert into seckill\_order (user\_id, goods\_id, order\_id)values(#{userId}, #{goodsId}, #{orderId})")
public int insertMiaoshaOrder(SecKillOrder secKillOrder);
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章