<?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="com.yx.dao.LendListMapper">
<resultMap id="BaseResultMap" type="com.yx.po.LendList">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="bookId" jdbcType="INTEGER" property="bookId" />
<result column="readerId" jdbcType="INTEGER" property="readerId" />
<result column="lendDate" jdbcType="TIMESTAMP" property="lendDate" />
<result column="backDate" jdbcType="TIMESTAMP" property="backDate" />
<result column="backType" jdbcType="INTEGER" property="backType" />
<result column="exceptRemarks" jdbcType="VARCHAR" property="exceptRemarks" />
</resultMap>
<sql id="Base_Column_List">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
id, bookId, readerId, lendDate, backDate, backType, exceptRemarks
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
select
<include refid="Base_Column_List" />
from lend_list
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
delete from lend_list
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.yx.po.LendList">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
insert into lend_list (id, bookId, readerId,
lendDate, backDate, backType,
exceptRemarks)
values (#{id,jdbcType=INTEGER}, #{bookId,jdbcType=INTEGER}, #{readerId,jdbcType=INTEGER},
#{lendDate,jdbcType=TIMESTAMP}, #{backDate,jdbcType=TIMESTAMP}, #{backType,jdbcType=INTEGER},
#{exceptRemarks,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.yx.po.LendList">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
insert into lend_list
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="bookId != null">
bookId,
</if>
<if test="readerId != null">
readerId,
</if>
<if test="lendDate != null">
lendDate,
</if>
<if test="backDate != null">
backDate,
</if>
<if test="backType != null">
backType,
</if>
<if test="exceptRemarks != null">
exceptRemarks,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="bookId != null">
#{bookId,jdbcType=INTEGER},
</if>
<if test="readerId != null">
#{readerId,jdbcType=INTEGER},
</if>
<if test="lendDate != null">
#{lendDate,jdbcType=TIMESTAMP},
</if>
<if test="backDate != null">
#{backDate,jdbcType=TIMESTAMP},
</if>
<if test="backType != null">
#{backType,jdbcType=INTEGER},
</if>
<if test="exceptRemarks != null">
#{exceptRemarks,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.yx.po.LendList">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
update lend_list
<set>
<if test="bookId != null">
bookId = #{bookId,jdbcType=INTEGER},
</if>
<if test="readerId != null">
readerId = #{readerId,jdbcType=INTEGER},
</if>
<if test="lendDate != null">
lendDate = #{lendDate,jdbcType=TIMESTAMP},
</if>
<if test="backDate != null">
backDate = #{backDate,jdbcType=TIMESTAMP},
</if>
<if test="backType != null">
backType = #{backType,jdbcType=INTEGER},
</if>
<if test="exceptRemarks != null">
exceptRemarks = #{exceptRemarks,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.yx.po.LendList">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 30 16:30:04 CST 2021.
-->
update lend_list
set bookId = #{bookId,jdbcType=INTEGER},
readerId = #{readerId,jdbcType=INTEGER},
lendDate = #{lendDate,jdbcType=TIMESTAMP},
backDate = #{backDate,jdbcType=TIMESTAMP},
backType = #{backType,jdbcType=INTEGER},
exceptRemarks = #{exceptRemarks,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<!--高级查询映射文件-->
<resultMap id="queryLendListAllMap" type="com.yx.po.LendList" extends="BaseResultMap">
<!--图书信息,需要得到图书名-->
<association property="bookInfo" javaType="com.yx.po.BookInfo">
<id property="id" column="id"></id>
<result property="name" column="bookName"></result>
</association>
<!--读者信息,需要得到读者卡号和真实姓名-->
<association property="readerInfo" javaType="com.yx.po.ReaderInfo">
<id property="id" column="id"></id>
<result property="realName" column="realName"></result>
<result property="readerNumber" column="readerNumber"></result>
</association>
</resultMap>
<!--查询所有记录-->
<select id="queryLendListAll" parameterType="com.yx.po.LendList" resultMap="queryLendListAllMap">
SELECT lend.*,
book.name as bookName,
reader.realName as realName,
reader.readerNumber
from lend_list lend LEFT JOIN book_info book on book.id=lend.bookId
LEFT JOIN reader_info reader on reader.id=lend.readerId
<!--带条件的高级查询-->
<where>
<if test="bookInfo!=null">
<!--根据图书名称查询-->
<if test="bookInfo.name!=null and bookInfo.name!=''">
and book.name like '%${bookInfo.name}%'
</if>
<!--还需判断返还时间是否为空
如果书已经被借走,状态为1,还没有还,则返回时间=null
如果书已经归还,状态为0,则返回时间非空,即还书时间
-->
<if test="bookInfo.status!=null and bookInfo.status==1">
and book.status=1 and backDate is null
</if>
<if test="bookInfo.status!=null and bookInfo.status==0">
and book.status=0 and backDate is not null
</if>
</if>
<!--根据借阅卡查询-->
<if test="readerInfo!=null">
<if test="readerInfo.readerNumber!=null and readerInfo.readerNumber!=''">
and readerNumber like '%${readerInfo.readerNumber}%'
</if>
</if>
<!--根据归还类型查询-->
<if test="backType!=null">
and backType=#{backType}
</if>
</where>
order by lend.lendDate desc
</select>
<!--还书-->