美文网首页
2017年5月27日

2017年5月27日

作者: 信石_18e9 | 来源:发表于2017-05-27 23:08 被阅读0次

    今天发现了MySQL的TimeStamp类型,居然支持Insert-TimeStamp的默认值(当前时间),以及Update-TimeStamp特性(更新该字段的时候自动更新)。

    大喜过望,将其实装进数据库。

    期间重做了一次系统,因为5.5不支持同时存在两个这样的TimeStamp。

    结果不知道出了什么问题,Github里居然只剩下了bean……

    看到一篇文章,http://blog.csdn.net/saroll57/article/details/51837551
    博主的看法是:根因是Mysql数据的变化源存在多个(Tomcat、Mysql),而多个源很容易产生时区等不一致情况。在开发Web系统时,尽量要减少这种多个模块、部件的耦合,尽量保证数据的变化源只有一个地方,就是Tomcat的Java Bean。

    仔细思考之下,两个TimeStamp只提供查询接口,Update语句里直接不给修改TimeStamp应该可以解决问题?

    将bean里所有用到时间戳的地方,直接返回java.sql.TimeStamp类型的数据,交由Service解析。

    为User表添加了create_at和last_login_at字段。

    昨天配的XML全部完蛋……好像resource文件夹是不会被git同步的。。日了狗
    重配增加熟练度吧。

    这回重新从Mapper开始写起,不过先写UserMapper吧。。
    Mapper有这三个方法:
    User getUser(Integer id)
    int update(User user)
    int add(User user)
    不提供删除用户的接口。

    接下来是userService的接口及其实现类。
    突然发现要实现验证码,找了个叫jCaptcha的轮子用上。
    在启动的时候Tomcat报异常:
    java.io.FileNotFoundException: Could not open ServletContext resource [/mybatis-config.xml],经检查是Spring-dao.xml中忘记加classpath:导致的。

    折腾这个轮子搞了好久啊……没有中文文档,只能看别人的实例,折腾了一个多小时复制了一份Spring的配置终于能正常使用了。。
    接下来的问题是在session中取出验证码对象来验证,这个应该和用户登陆放在同一块,看看有没有手册……
    钻了半小时牛角尖,我的目标是前后端分离,采用Token验证而不是浏览器中的Session,我觉得这个轮子不适合我……

    又花了15分钟查阅文章,总结一下:
    旧版本:向服务器要一个验证码,服务器直接在内存中生成验证码,用户输入之后在Session里放输入的值,服务端来判断对不对得上。
    新版本:同时要到验证码+id,将id+验证码写入json返回去,绑定在token上,服务端判断id和验证码是否能对上。

    倒是发现一个比较新的轮子,Github上最近一次更新是11天前。。但是人家的技术选型是OAuth+Redis对我而言完全陌生……

    而且也不是很友好,只是一个项目,并没有打出现成的jar。。

    所以我的验证码到底怎么办。。

    相关文章

      网友评论

          本文标题:2017年5月27日

          本文链接:https://www.haomeiwen.com/subject/uibqfxtx.html