今天發(fā)現(xiàn)了MySQL的TimeStamp類型,居然支持Insert-TimeStamp的默認值(當前時間),以及Update-TimeStamp特性(更新該字段的時候自動更新)。
大喜過望,將其實裝進數(shù)據(jù)庫。
期間重做了一次系統(tǒng),因為5.5不支持同時存在兩個這樣的TimeStamp。
結果不知道出了什么問題,Github里居然只剩下了bean……
看到一篇文章,http://blog.csdn.net/saroll57/article/details/51837551
博主的看法是:根因是Mysql數(shù)據(jù)的變化源存在多個(Tomcat、Mysql),而多個源很容易產(chǎn)生時區(qū)等不一致情況。在開發(fā)Web系統(tǒng)時,盡量要減少這種多個模塊、部件的耦合,盡量保證數(shù)據(jù)的變化源只有一個地方,就是Tomcat的Java Bean。
仔細思考之下,兩個TimeStamp只提供查詢接口,Update語句里直接不給修改TimeStamp應該可以解決問題?
將bean里所有用到時間戳的地方,直接返回java.sql.TimeStamp類型的數(shù)據(jù),交由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的接口及其實現(xiàn)類。
突然發(fā)現(xiàn)要實現(xiàn)驗證碼,找了個叫jCaptcha的輪子用上。
在啟動的時候Tomcat報異常:
java.io.FileNotFoundException: Could not open ServletContext resource [/mybatis-config.xml],經(jīng)檢查是Spring-dao.xml中忘記加classpath:導致的。
折騰這個輪子搞了好久啊……沒有中文文檔,只能看別人的實例,折騰了一個多小時復制了一份Spring的配置終于能正常使用了。。
接下來的問題是在session中取出驗證碼對象來驗證,這個應該和用戶登陸放在同一塊,看看有沒有手冊……
鉆了半小時牛角尖,我的目標是前后端分離,采用Token驗證而不是瀏覽器中的Session,我覺得這個輪子不適合我……
又花了15分鐘查閱文章,總結一下:
舊版本:向服務器要一個驗證碼,服務器直接在內存中生成驗證碼,用戶輸入之后在Session里放輸入的值,服務端來判斷對不對得上。
新版本:同時要到驗證碼+id,將id+驗證碼寫入json返回去,綁定在token上,服務端判斷id和驗證碼是否能對上。
倒是發(fā)現(xiàn)一個比較新的輪子,Github上最近一次更新是11天前。。但是人家的技術選型是OAuth+Redis對我而言完全陌生……
而且也不是很友好,只是一個項目,并沒有打出現(xiàn)成的jar。。
所以我的驗證碼到底怎么辦。。