发表于: 2018-02-21 22:38:02

1 554


今天完成:

1,实现分页显示功能。之前的程序已经实现了分页显示功能,但是这次我把“删除功能”用新建了一个deleted列表示。假设出现这样的情况,第一页显示第一条到第五条信息,如果我把第三条到信息标记为deleted,是不需要显示这条信息的,很简单,使用where语句就能过滤掉deleted的信息,但是这样的话,这一页还能显示五条信息吗?网上没有明确的信息,先试试看。

    (1)Mapper.xml中:
<!— 分页查询全部用户-->
<select id="getAllStudent" resultType="Student">
    select * from Student WHERE deleted=0
    <if test="start!=null and count!=null">
        limit #{start},#{count}
    </if>
</select>
<!-- 查询所有未被删除的学员数量 -->
<select id="total" resultType="int">
    select count(*) from Student WHERE deleted=0
</select>
    (2)最后跑测试,将第一条和第三条数据标记为deleted=1,表示已经“删掉”,最后查询结果仍然是五条。结果如下:
[Student [id=2, name=任我行, QQ=4736372647, XZType=1], Student [id=4, name=林平之, QQ=23232323, XZType=1], Student [id=5, name=任盈盈, QQ=45454545, XZType=2], Student [id=6, name=洪七公, QQ=747742, XZType=2], Student [id=7, name=鲁智深, QQ=23232323, XZType=1]]
    证明当where和limit两个方法同时使用时,limit会从where条件过滤后的结果中筛选出规定数量的数据。
2,改善了一下昨天的模糊查询。使用concat(‘%’,#{name},’%’)语句,用户只需输入name的值,concat会自动给这个值的前后拼接上%。整合后的模糊查询语句是:
<!--根据任何一个或者几个条件查询student信息。模糊搜索。-->
<select id="getStudentByCondition" resultType="Student">
    SELECT * FROM Student
    <where>
        <if test="name !=null">
            name LIKE concat('%',#{name},'%')
        </if>
        <if test="QQ !=null">
            AND QQ LIKE concat('%',#{QQ},'%')
        </if>
        <if test="XZType !=0">
            AND XZType = #{XZType}
        </if>
        <if test="Entrance_Date !=0">
            AND Entrance_Date = #{Entrance_Date}
        </if>
        <if test="Graduate_From !=null">
            AND Graduate_From LIKE concat('%',#{Graduate_From},'%')
        </if>
        <if test="Online_No !=null">
            AND Online_No LIKE concat('%',#{Online_No},'%')
        </if>
        <if test="Brother !=null">
            AND Brother LIKE concat('%',#{Brother},'%')
        </if>
    </where>
</select>

遇到问题:

伪form表单提交delete方法,无法实现。

明天计划:

继续完成task1-3的复习。


返回列表 返回列表
评论

    分享到