基于javaMybatis存進(jìn)時(shí)間戳的問題
java Mybatis存進(jìn)時(shí)間戳
封裝了一個(gè)實(shí)體類,里面有個(gè)字段 Integer createTime。
要利用這個(gè)實(shí)體類將一個(gè)時(shí)間戳存進(jìn)數(shù)據(jù)庫中。
剛開始的時(shí)候出現(xiàn)錯(cuò)誤:
Data truncation: Incorrect datetime value: '123456789' for column 'create_time' at row 1
是存進(jìn)數(shù)據(jù)庫的時(shí)候出現(xiàn)了問題,個(gè)人理解應(yīng)該是Integer類型和數(shù)據(jù)庫中的Timestamp類型不匹配。
之后把封裝類里createTime的類型變成了Timestamp,但是由于我是用Map<String, Object>傳過來的參數(shù),取出來的值是Object類型,轉(zhuǎn)換成Timestamp一直出錯(cuò)(可能是我知道的方法不夠),于是我又把createTime的封裝類變成了Date類型。代碼大概如下
Long createTime = Long.parseLong(param.get("CreateTime").toString()); //先用Long接收傳過來的參數(shù)
Member member = new Member(); //實(shí)例化一個(gè)實(shí)體類
member.setCreateTime(new Date(createTime)); //因?yàn)榉庋b類里createTime是Date類型,直接new一個(gè)日期,只要把Long類型的數(shù)值放進(jìn)去就可以
這樣,將member用Mybatis插入數(shù)據(jù)庫就不會(huì)出現(xiàn)問題了。
Mybatis處理相關(guān)時(shí)間戳格式的數(shù)據(jù)
1、程序中直接寫SQL語句時(shí):
1)如果插入的是當(dāng)前時(shí)間戳,可以在SQL中直接寫SYSTIMESTAMP關(guān)鍵字。
2)如果插入的是前臺(tái)送上來的時(shí)間,可以在SQL中使用Oracle的函數(shù)進(jìn)行轉(zhuǎn)換to_date或to_timestamp,
to_timestamp(string, fmt)
fmt可以為空,為空時(shí),string必須符合NLS_TIMESTAMP_FORMAT格式,即 'YYYY-MM-DD HH:MI:SS.FF'
to_date只保存到日期,to_timestamp可以保存到時(shí)分秒
2、通過Mybatis進(jìn)行映射時(shí)
如果Entity中定義的類型為Timestamp, resultMap中定義的javaType=“java.sql.Timestamp”, SQL語句中定義的jdbcType=TIMESTAMP
如果Entity中定義的類型為String,resultMap中定義的javaType="java.lang.String",SQL語句中需要對(duì)參數(shù)進(jìn)行to_timestamp轉(zhuǎn)換,jdbcType=TIMESTAMP
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用跳轉(zhuǎn)結(jié)構(gòu)實(shí)現(xiàn)隊(duì)列和棧流程詳解
這篇文章主要介紹了Java使用跳轉(zhuǎn)結(jié)構(gòu)實(shí)現(xiàn)隊(duì)列和棧流程,連續(xù)結(jié)構(gòu)和跳轉(zhuǎn)結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)中常見的兩種基本數(shù)據(jù)結(jié)構(gòu),而我們本次的主角棧和隊(duì)列都 既可以使用使用跳轉(zhuǎn)結(jié)構(gòu)實(shí)現(xiàn)也可以使用連續(xù)結(jié)構(gòu)實(shí)現(xiàn)2023-04-04
Mybatis order by 動(dòng)態(tài)傳參出現(xiàn)的問題及解決方法
今天,我正在愉快地CRUD,突然發(fā)現(xiàn)出現(xiàn)一個(gè)Bug,我們來看看是怎么回事吧!接下來通過本文給大家介紹Mybatis order by 動(dòng)態(tài)傳參出現(xiàn)的一個(gè)小bug,需要的朋友可以參考下2021-07-07
java中實(shí)現(xiàn)遞歸計(jì)算二進(jìn)制表示中1的個(gè)數(shù)
這是一個(gè)很有意思的問題,是在面試中特別容易被問到的問題之一,解決這個(gè)問題第一想法肯定是一位一位的去判斷,是1計(jì)數(shù)器+1,否則不操作,跳到下一位,十分容易,編程初學(xué)者就可以做得到!2015-05-05
Mybatis中兼容多數(shù)據(jù)源的databaseId(databaseIdProvider)的簡單使用方法
本文主要介紹了Mybatis中兼容多數(shù)據(jù)源的databaseId(databaseIdProvider)的簡單使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
SpringBoot整合Mybatis自定義攔截器不起作用的處理方案
這篇文章主要介紹了SpringBoot整合Mybatis自定義攔截器不起作用的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
阿里Sentinel支持Spring Cloud Gateway的實(shí)現(xiàn)
這篇文章主要介紹了阿里Sentinel支持Spring Cloud Gateway的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
Java基礎(chǔ)學(xué)習(xí)之IO流應(yīng)用案例詳解
這篇文章主要為大家詳細(xì)介紹了Java?IO流的三個(gè)應(yīng)用案例:點(diǎn)名器、集合到文件和文件到集合,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-09-09
Nacos1.4.0 Windows10單機(jī)模式啟動(dòng)和集群啟動(dòng)過程解析
這篇文章主要介紹了Nacos1.4.0 Windows10單機(jī)模式啟動(dòng)和集群啟動(dòng),第一次使用nacos,廢話不多說,記錄下自己啟動(dòng)Nacos遇到的坑,感興趣的朋友跟隨小編一起看看吧2023-10-10

