Spring框架,编程软件myeclipse,PL/SQL developer。
技术评价功能&要求:保存提交的评价,限制每个坐席每天只能提交一次。
1. 建反馈表单err_feedback
create table err_feedback(tuid varchar2(20),seat_num varchar(50),seat_ip varchar2(20),num_star varchar2(5),remarks varchar2(100),feedback_time date);
2. 编写FeedbackDao.xml
此处我们需要两个功能:插入新评价 & 通过日期+IP+工位号查找已存在评价
1)插入新评价
<insert id="insertFeedback">
insert into err_feedback (
tuid, <!-- 唯一标识:seq_err_default -->
seat_num, <!-- 坐席编号 -->
seat_ip, <!-- 坐席IP -->
num_star, <!-- 评价星级 -->
remarks, <!-- 评价内容-->
FEEDBACK_TIME <!-- 评价时间-->
)
values(
seq_err_chatlog.nextval,
#{seatNum},
#{seatIp},
#{numStar},
#{remarks},
sysdate
)
</insert>
注*:我们使用sysdate,在feedback_time里储存的时间格式为:yyyy/mm/dd hh:mm:ss。
2)通过日期+IP+工位号查找已存在评价
<select id = "getFeedbackTime" resultType="Feedback">
select
t.tuid as "tuid",
t.seat_num as "seatNum",
t.seat_ip as "seatIp",
t.num_star as "numStar",
t.remarks as "remarks"
from err_feedback t
where to_char(t.feedback_time,'yyyy/mm/dd') = to_char(sysdate,'yyyy/mm/dd') <!-- 今日该IP已提交过评论 -->
and t.seat_ip = #{seatIp}
and t.seat_num = #{seatNum}
order by t.FEEDBACK_TIME desc
</select>
该功能是为了限制员工每日只能提交一次评价。因此,我们使用日期+IP+seat number来查找,因多个职场合并后内网IP可能不唯一。
注*:这里我们使用语句
to_char(t.feedback_time,'yyyy/mm/dd') = to_char(sysdate,'yyyy/mm/dd')
左右都是将date转化为char,以年月日的形式输出,以便进行比较。在这里我们要注意,date和char不可以直接比较。
参考资料:日期格式_oracle 数据库日期格式怎么只要年月日Oracle日期常用函数(SYSDATE)_sysdate函数_象在舞的博客-CSDN博客https://www.cnblogs.com/hllnj2008/p/5332962.html为何不同的局域网有相同的ip地址?_百度知道IP地址_百度百科
3. 编写Feedback.java
package com.bean;
/*
* 评价信息
* */
public class Feedback {
pri