Java实体Date类型属性值无法保存到数据表对应字段的问题

项目框架:

maven+springMVC+mybatis

实体属性:

//推荐时间
private java.util.Date recommendDate;

数据库字段:

ALTER TABLE `resource`
ADD COLUMN `RECOMMEND_DATE`  date NULL COMMENT ‘推荐时间‘;

属性赋值:

resource.setRecommendDate(DateUtils.getNowDate());

相关方法:

获取现在时间
	/**
	 * 获取现在时间
	 *
	 * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
	 */
	public static Date getNowDate() {
		Date currentTime = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String dateString = formatter.format(currentTime);
		ParsePosition pos = new ParsePosition(8);
		Date currentTime_2 = formatter.parse(dateString, pos);
		return currentTime_2;
	}

问题:执行保存时跟踪MySql日志发现字段值是NULL

resourceManager.saveOrUpdate(resource);

RECOMMEND_DATE = null

原因分析:

产生此问题的原因估计是类型不匹配的问题!

但即没有异常,也没有警告;

解决方法:

后来由于需要保存日期时间,所以将数据库类型改为datetime;

实体属性映射为:

//推荐时间
private java.sql.Timestamp recommendDate;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-04 04:43:07

Java实体Date类型属性值无法保存到数据表对应字段的问题的相关文章

java 中利用反射机制获取和设置实体类的属性值

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. JAVA反射(放射)机制:"程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言".从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言.但是JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可

java基础--java.util.Date类型小结

首先先来了解一下Date数据类型: . Date类型通常要和另一个 java.text.SimpleDateFormat类联合使用. 把long-->Date: public Date(long date);  Date类的构造函数可以直接将long数据类型转为Date类型 把Date-->long: public long getTime();Date类的一个方法,可以得到对应的long型.这种转换最大的使用环境就是在java.sql中的以上三个子类. 如果获取当前时间的long类型,可以直

字符串转换成java.util.date类型和将java.util.date类型转换成java.sql.date类型

//将字符串转换成java.util.date类型 DateFormat format = new SimpleDateFormat("yyyyMMDD"); Date date1 = format.parse(startDate); //将java.util.date类型转换成java.sql.date类型 skg.statStartTime = new java.sql.Date(date1.getTime()); skg.statEndTime = new java.sql.Da

[Oracle]根据字段值全库搜索相关数据表和字段

这个需求比较冷门,但对于在某些特定的情况下,还是会有这样的需要的.好在Oracle实现还比较方便,用存储过程则轻松实现. 查询字符串: create or replace procedure search_string(pString in varchar) as cursor all_tab_cursor is select a.owner, a.table_name, b.column_name from dba_tables a, dba_tab_columns b, dba_object

mysql将一个表中字段A的值赋给另一个表的字段B

# mysql 的修改方法 update table_a a inner join table_b b on b.id=a.id set a.description=b.content; # mssql的修改方法 update b set a.description=b.content from table_a a inner join table_b b on a.id=b.id; mysql将一个表中字段A的值赋给另一个表的字段B

【SQL Server】sql server更改了数据表的字段/新增数据表的字段 无法保存

sql server更改了数据表的字段/新增数据表的字段  无法保存 解决方法:进入 工具-->选项-->Designers-->表设计器和数据库设计器-->取消勾选   即可

含有Date类型属性的实体类转化为JSONArray时报net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

当我们通过session传递数据的时候我通常是: 直接在DAO里从数据库取出含Date类型的数据,而且通常不会将java.sql.Date转为java.util.Date. 这时候前台和后台都不会有任何问题,所以我们以为这样是正常的操作. 但是当我们用JSON传递数据的时候就会发现控制台会报一下错误信息: net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 这时候我们可以再DAO里将java.sql.Dat

java中Date类型的一些操作

一.日期的比较 1.直接 用getTime 方法 时间的毫秒数比较 if(date.getTime() < start.getTime()) { return String.valueOf(Long.parseLong(year)-1); } else { return year; } 2. Date实现了Comparable接口,直接使用compareTo方法比较就ok if(date.compareTo(start) < 0) { return String.valueOf(Long.pa

Javascript Date 类型的值传递与引用传递问题

新建一个Date类型的变量 d1. <span style="font-family:Microsoft YaHei;font-size:14px;">var d1 = new Date(); alert(d1);</span> 运行后页面上会弹出: Fri Sep 05 2014 16:40:50 GMT+0800 再新建一个变量 d2, 将 d1的值赋给d2,   把d2 的 年份设置为 2013, <span style="font-fam