一、今日完成
1.完成我的申请API接口开发与前端对接。
加入社团申请 我的申请列表 数据库apply表单
2.活动列表API开发。(暂未与前端对接)
SQL查询代码:
<select id="getActivityList" resultType="com.example.demo.domin.Activity"> select * from magic_club.activity </select> <select id="getActivityListByKeys" parameterType="java.lang.String" resultType="com.example.demo.domin.Activity"> select * from magic_club.activity where `name` like #{keys}; </select> <select id="getMyJoinList" parameterType="java.lang.String" resultType="com.example.demo.domin.Activity"> select * from magic_club.activity as a natural join magic_club.activitypaticipants as b where userOpenid = #{openid} and a.activityId=b.activityId </select> <select id="getMyPublishList" parameterType="java.lang.String" resultType="com.example.demo.domin.Activity"> SELECT * FROM magic_club.activity where creatorAssociationName in (select associationName from association where creatorOpenid=#{openid}); </select>
二、明日计划
1.完成活动API前端对接工作。
2.完成队友前端未完成界面。
三、个人小结
今日在开发我的申请API时,使用了多表查询,代码如下:
<select id="getMyApplyList" resultType="com.example.demo.domin.Apply" parameterType="java.lang.String"> SELECT * FROM magic_club.apply natural join (select realName as creatorName,openid as creatorOpenid from `user`)as `person` natural join (select associationName,associationId,iconPath,creatorOpenid from association)as ass where apply.associationId=ass.associationId and ass.creatorOpenid=person.creatorOpenid and apply.applyOpenid=#{applyOpenid}; </select>
之前在搭建Spring框架时,所有的SQL语句都为单一实体类对应单一表单操作,在进行多表查询时产生疑惑:是否应该增加实体类属性?因为插入申请只涉及到apply表单操作(详见昨日博客),两个SQL语句使用相同实体类(想到了拆分为两个实体类,但是为了节约文件资源,做出了尝试),若增加属性,在插入操作时,会产生很多属性为空值。
思考不如行动,我决定进行测试,测试结果并没有报错。由此引发思考,实体类仅为对象参数的承载,实体类仅仅规定了接受最大参数个数与类型,并不规定最少个数,仅在SQL调用参数时检查其属性值。
附spring后端目录: