一、描述
1、数据库中有一个date类型的last_login_time字段,即用户每次登录都会更新该字段;
2、在登录时使用jdbcTemplate的queryForObject方法,取出last_login_time字段的值以Date类型返回,并用DateFormat格式化该时间
3、获取系统当前时间,并用DateFormat格式化,比较两个时间是否相等就可以判断该用户今天是否第一次登录。
上次我写的判断用户当天是否第一次登录的方法采用字符串的比较方式,使用起来很繁琐,效率也不高,因此今天进行优化。
上次写的的博文地址为:http://blog.csdn.net/tongyuehong137/article/details/38848495
二、源代码
//从数据库中获取用户最后登录时间
//1、使用User用户的get方法获取用户最后登录时间
Date dt=user.getLastLoginTime();
//2、使用jdbcTemplate的queryForObject方法查询用户的最后登录时间并且转换成Date类型
//根据userID从数据库中查询最后登录时间
String internalTimeString="select last_login_time from scpn_user where user_id="+user.getUserId();
private JdbcTemplate jdbcTemplate;
Date dt=jdbcTemplate.queryForObject(internalTimeString, java.util.Date.class);
//获取系统当前时间
Date time=new Date();
String s;
if(dt==null){
s="";
}else {
s = DateFormat.getDateInstance().format(dt);
}
String t= DateFormat.getDateInstance().format(time);
//将当前系统时间和用户最后登录时间进行格式化,判断是否为同一天
if(!s.equals(t)){
//执行每日登录的加分操作
......
}
三、总结
1、获取最后登录时间的方式可以自行决定,除了上述两种方法还有很多方法。
2、使用DateFormat格式化日期代替字符串的比较效率有所提高,使用也更加简洁。
原文:http://blog.csdn.net/tongyuehong137/article/details/42392917