从这里开始
1)SeckillDAO.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.seckill.dao.SeckillDAO">
<select id="queryById" resultType="org.seckill.entity.Seckill">
select * from seckill where seckill_id= #{seckillId}
</select>
<select id="queryAll" resultType="org.seckill.entity.Seckill" >
select * from seckill order by create_time DESC
limit #{offset},#{limit}
</select>
<update id="reduceNumber">
update
seckill
set
number = number - 1
where seckill_id = #{seckillId}
and start_time <![CDATA[ <= ]]> #{killTime}
and end_time <![CDATA[ >= ]]> #{killTime}
and number > 0;
</update>
</mapper>
2)SuccessKilledDAO.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.seckill.dao.SuccessKilledDAO">
<insert id="insertSuccessKilled">
<!-- 主键冲突,不报错 影响0行 加ignore-->
insert ignore into success_killed(seckill_id,user_phone,state)
values(#{seckillId},#{userPhone},0)
</insert>
<select id="queryByIdWithSeckill" resultType="org.seckill.entity.SuccessKilled">
select
sk.seckill_id,sk.user_phone,sk.create_time,sk.state,
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>
<!--使用存储过程优化-->
<!--<select id="killByProcedure" statementType="CALLABLE">-->
<!--call execute_seckill(-->
<!--#{seckillId,jdbcType=BIGINT,mode=IN},-->
<!--#{phone,jdbcType=BIGINT,mode=IN},-->
<!--#{killTime,jdbcType=TIMESTAMP,mode=IN},-->
<!--#{result,jdbcType=INTEGER,mode=OUT}-->
<!--)-->
<!--</select>-->
</mapper>