Mybatis插入時間沒有時分秒只有年月日
起因
前幾天單元測試發現,資料庫中的日期型別欄位只插入了不帶時分秒的值。
Debug下來確認,入庫前實體欄位裡存的時間值是正常的,立即猜測問題出在Mybatis裡。xxxMapper.xml裡是這麼寫的,
<if test="timeJoin != null">TIME_JOIN = #{timeJoin, jdbcType = DATE},</if>
推測
目測錯誤就是由”jdbcType = DATE”導致的。我去查看了一下Mybatis的TypeHandlerRegistry,發現關於時間型別的註冊有以下幾種:
測試
看到關於時間的JdbcType有TIMESTAMP、DATE和TIME,就用入參型別和JdbcType做交叉組合,得到如下測試結果:
總結
由上述測試結果可以總結,如果傳入實體物件裡的欄位是java.util.Date或者java.sql.Date或者java.sql.Time或者java.sql.Timestamp,同時
(1) jdbcType並未指定,則返回日期和時分秒!
return new Date(sqlTimestamp.getTime());// Timestamp sqlTimestamp
(2) jdbcType指定為”JdbcType.DATE”,則只返回日期,不帶時分秒!
return new java.util.Date(sqlDate.getTime());// java.sql.Date sqlDate
(3) jdbcType指定為”JdbcType.TIME”,則只有時分秒有效!
return new Date(sqlTime.getTime());// java.sql.Time sqlTime
相關推薦
Mybatis插入時間沒有時分秒只有年月日
起因 前幾天單元測試發現,資料庫中的日期型別欄位只插入了不帶時分秒的值。 Debug下來確認,入庫前實體欄位裡存的時間值是正常的,立即猜測問題出在Mybatis裡。xxxMapper.xml裡是這麼寫的, <if test="timeJoin !
mybatis中查詢oracle資料庫date型別的時間沒有時分秒
原因出在mybatis中的mapper.xml中物件的屬性對應的jdbcType=date,jdbcType=date對應的Java型別是java.sql.date,所以沒有時分秒。如果想顯示時分秒,物件的屬性對應的jdbcType應該設定成TIMESTAMP,例如:
mybatis對於時間的時分秒的處理
前言 每次前臺傳入關於時間的查詢,我總是很糾結,資料庫查詢時,對於時分秒到底是如何處理的,特此總結,如有錯誤請指正!!! 可以先了解sqlDate與utilDate的區別java.util.Date 與 java.sql.Date 與 String 的轉換 準備 mysq
解決資料庫中插入時間丟失時分秒
java.util.Date轉換為java.sql.Date帶時分秒 java.util.Date需要轉換為java.sql.Date,常規的方式轉換過來只可以得到年月日,如若要取得時分秒,可以用Date的子類Timestamp Java在向資料庫中插入時間的時候,常
插入資料時,儲存的date型別時間欄位的資料只有年月日,沒有時分秒的問題
本人使用的hibernate實體類對映方式,在實體類中date型別的註解方式,預設生成的是@Temporal(TemporalType.DATE) 在儲存的時候,此欄位資料就只保留了年月日 將註解方式更改為@Temporal(TemporalType.TIMESTAMP),就能正確儲存(
mybatis存入資料庫後沒有時分秒時間不全只有年月日
對於Mbatis操作Date/Time/DateTime,總結如下:將pojo的屬性型別設定為java.sql.Date(或java.sql.Time, java.sql.Timestamp),此時會嚴格遵循這三種類型的語義。但此方法因存在前文中提到的效能問題,在JDK1.
向資料庫中插入日期時間datetime型別資料,資料庫中只有日期沒有時分秒
java.util.Date是不能直接插入資料庫中的,雖然它包含了日期和時分秒。 java.sql.Date可以直接插入資料庫,但是它只有日期而沒有時間; java.sql.Time可以直接插入資料庫,但是它只有時間,沒有日期 Java
使用Mybatis查詢,返回時間資料沒有時分秒 解決方法
今天我在用mybatis查詢資料時,發現返回的時間資料只返回了日期 並沒有 ‘時’,‘分’,‘秒’。 後來我想到:Oralce的日期型別有很多種,Date ,Timestamp等,那是不是和我xml裡面配置的jdbcType型別有關, 1.檢查你的mysql資料表 &nbs
mysql中存入時間,沒有時分秒問題, 其中表時間欄位為datetime型別
資料庫表的時間欄位time為時間datetime型別,在程式中,如果採用PreparedStatement 向語句傳的話,一般都會使用(int parameterIndex, Date x)方法,但是這樣,在資料庫表裡顯示的是:2014-09-20
Sql 獲取當前日期沒有時分秒
2-2 時分秒 date body () convert get 8.0 OS select convert(varchar(10),getdate(),120) 輸出格式:2008-02-27 00:25:13 SELECT CONVERT(char(19), g
Oracle中獲取Date型別資料,沒有時分秒
oralce資料庫中,獲取Date型別資料,發現數據的格式為:“yyyy-mm-dd”,而不是“yyyy-mm-dd hh24:mi:ss” 1,使用JDBC從oracle資料庫中取Date型別資料,當使用getDate(“欄位名”)方法取值時,只能獲取到日期,而無法獲
如何設定讓Oracle SQL Developer顯示的時間包含時分秒
參考設定1: 將工具--首選項--資料庫--NLS--日期格式由DD-MON-RR修改為DD-MON-RR HH24:MI:SS 參考設定2: 將Tools --> Preferences --> Database --> NLS Parameters --> Date Fo
Python秒轉換成時間(時分秒)
方法 一:seconds(秒數)為小數時不會丟失小數部分(推薦使用) import datetime datetime.timedelta(seconds=100.55) 方法一:seconds(秒數)為小數時會小數部分可能受影響 m, s = divmod(seconds = 11
後臺獲取的時間進行時分秒倒計時
<html lang="en"> <head> <meta charset="UTF-8"> <title>js簡單時分秒倒計時</title> <!--<script src="js/dayClickI
hibernate保持日期時沒有時分秒的解決辦法
將hbm.xml中的 <property name="createTime" type="date" column="CJSJ" update="false"/> 改為 <property name="createTime" type="java.util
網頁顯示時間,時分秒轉化、倒計時原理
<script type="text/javascript"> //倒計時原理 = 未來時間點-現在時間點 //var iNow = new Date();/
MyBatis 插入空值時,需要指定JdbcType.如#{name,jdbcType=VARCHAR}
在執行SQL時MyBatis會自動通過物件中的屬性給SQL中引數賦值,它會自動將Java型別轉換成資料庫的型別。而一旦傳入的是null它就無法準確判斷這個型別應該是什麼,就有可能將型別轉換錯誤,從而報錯。要解決這個問題,需要針對這些可能為空的欄位,手動指定其轉換時用到的型別。
MyBatis 插入空值時,需要指定JdbcType
看一看 org.apache.ibatis.type.BaseTypeHandler @Override public void setParameter(PreparedStatement ps, int i, T parameter, JdbcType
Oracle資料庫mybatis 插入空值時的處理
mybatis 插入空值時報錯(with JdbcType OTHER)的兩種解決方案在使用Mybatis 3 時,發現了這個問題,當插入資料時,如果有一個欄位為空值時,系統會報異常,導致插入資料失敗。異常資訊類似:org.springframework.jdbc.Uncat
js如何獲得系統時間年月日時分秒
targe onload 調用方法 space m3u baidu function www. pyw javascript 自帶有個對象(構造函數),Date().下面是代碼: 回答一: var now = new Date(); var nowTime = now.t