发表于: 2018-02-21 22:38:02
1 553
今天完成:
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的复习。
评论