基于javaMybatis存進(jìn)時(shí)間戳的問(wèn)題
java Mybatis存進(jìn)時(shí)間戳
封裝了一個(gè)實(shí)體類,里面有個(gè)字段 Integer createTime。
要利用這個(gè)實(shí)體類將一個(gè)時(shí)間戳存進(jìn)數(shù)據(jù)庫(kù)中。
剛開(kāi)始的時(shí)候出現(xiàn)錯(cuò)誤:
Data truncation: Incorrect datetime value: '123456789' for column 'create_time' at row 1
是存進(jìn)數(shù)據(jù)庫(kù)的時(shí)候出現(xiàn)了問(wèn)題,個(gè)人理解應(yīng)該是Integer類型和數(shù)據(jù)庫(kù)中的Timestamp類型不匹配。
之后把封裝類里createTime的類型變成了Timestamp,但是由于我是用Map<String, Object>傳過(guò)來(lái)的參數(shù),取出來(lái)的值是Object類型,轉(zhuǎn)換成Timestamp一直出錯(cuò)(可能是我知道的方法不夠),于是我又把createTime的封裝類變成了Date類型。代碼大概如下
Long createTime = Long.parseLong(param.get("CreateTime").toString()); //先用Long接收傳過(guò)來(lái)的參數(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ù)庫(kù)就不會(huì)出現(xiàn)問(wèn)題了。
Mybatis處理相關(guān)時(shí)間戳格式的數(shù)據(jù)
1、程序中直接寫(xiě)SQL語(yǔ)句時(shí):
1)如果插入的是當(dāng)前時(shí)間戳,可以在SQL中直接寫(xiě)SYSTIMESTAMP關(guān)鍵字。
2)如果插入的是前臺(tái)送上來(lá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、通過(guò)Mybatis進(jìn)行映射時(shí)
如果Entity中定義的類型為Timestamp, resultMap中定義的javaType=“java.sql.Timestamp”, SQL語(yǔ)句中定義的jdbcType=TIMESTAMP
如果Entity中定義的類型為String,resultMap中定義的javaType="java.lang.String",SQL語(yǔ)句中需要對(duì)參數(shù)進(jìn)行to_timestamp轉(zhuǎn)換,jdbcType=TIMESTAMP
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud整合Activiti過(guò)程中的踩坑記錄
由于項(xiàng)目需要,最近開(kāi)始在項(xiàng)目Spring boot中集成工作流引擎Activiti,由于第一次集成,一路上步步都是坑,所以這篇文章主要給大家介紹了關(guān)于SpringCloud整合Activiti過(guò)程中所遇到的踩坑記錄,需要的朋友可以參考下2021-09-09Java實(shí)現(xiàn)上傳和下載功能(支持多個(gè)文件同時(shí)上傳)
這篇文章主要介紹了Java實(shí)現(xiàn)上傳和下載功能,支持多個(gè)文件同時(shí)上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12Spring中@Autowired自動(dòng)注入map詳解
這篇文章主要介紹了Spring中@Autowired自動(dòng)注入map詳解, spring是支持基于接口實(shí)現(xiàn)類的直接注入的,支持注入map,list等集合中,不用做其他的配置,直接注入,需要的朋友可以參考下2023-10-10java中復(fù)雜查詢sql語(yǔ)句該怎么寫(xiě)
我們知道在java連接數(shù)據(jù)庫(kù)之后,需要數(shù)據(jù)庫(kù)的sql語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于java中復(fù)雜查詢sql語(yǔ)句該怎么寫(xiě)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11Mybatis的一級(jí)緩存和二級(jí)緩存原理分析與使用
mybatis-plus 是一個(gè) Mybatis 的增強(qiáng)工具,在 Mybatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生,這篇文章帶你了解Mybatis的一級(jí)和二級(jí)緩存2021-11-11