1. 程式人生 > >獲取訪問者ip並存入資料

獲取訪問者ip並存入資料

## 標題一枚新新程式菜猿,我將在這裡記錄我的成長過程以及… 在這個過程中我遇到的問題解決思路,真的菜鳥一小隻,有總結不到之處,路過的朋友請幫我指出!!!!!感激不盡!!!!****
目前個人水平有限, 我開始總結我寫過的東西,出的錯,解決辦法!!!
首先擺出:IntelliJ IDEA 建立Web專案(全教程): https://www.jianshu.com/p/455c7c11dfb2
然後: spring boot 註解 https://www.cnblogs.com/tanwei81/p/6814022.html
剛開始來公司,應屆畢業生,組員給分配的任務還是比較簡單的,儘管這樣,我還是寫了好幾天,控制自己避免焦灼。組員讓我寫了一個很小的東西——————獲取訪問者的ip進行儲存資料庫。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
其實就是寫controller->service和service介面->xml->實體類info


寫mapping的xml檔案遇到報錯
Error setting null for parameter #2 with JdbcType OTHER .
Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property.

mybatis配置檔案沒有對傳入的引數進行非空判斷;
或者型別轉化錯誤,嘗試加上if後面一大堆,加了jdbcType,然後這個錯就解決了。。。在這裡插入圖片描述
controller層

@RequestMapping("/cli/{id}")
public void getPageList(HttpServletRequest request, HttpServletResponse response,@PathVariable("id") Integer id) {
    try{
        String ip = getIpAddr(request);
        if(id!=null&&id>0){
            iSupermarketInfoService.doclick(id);
            IpInfo ipInfo = new IpInfo();
            ipInfo.setCsId(id);
            ipInfo.setIp(ip);
            ipInfoService.insert(ipInfo);
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", 200);
        jsonObject.put("msg", "儲存成功");
        JsonUtils.toObjectJson(response, jsonObject);
    } catch (Exception e) {
        logger.error("back  error ", e);
    }
}

這一層主要是業務的流程 獲取ip->判斷傳入的id->加點選事件doclick->設定接收id和ip的實體->插入邏輯層ipInfoService->設定丟擲異常try,catch

在這個過程中,我還在資料庫加了建立時間和修改時間的欄位!!
也遇到問題,每一次更新了修改時間,這個建立時間會變得和修改時間一樣,我當時已經懷疑電腦智障不然我真的智障!!
解決辦法: 加了sql語句,運行了就完事了:

alter table 表名字 MODIFY create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
alter table 表名字 MODIFY update_time timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

最重要的就是controller層,寫完基本就結束了
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我不知道Java女生的前路是怎麼樣的, 多學點東西,一路向前,堅定堅持1年。加油!!