我有一个json,我正在解析它以将数据保存到数据库中。
示例Json: -
{
"uuid":"1111170905035334",
"serviceName":"service1",
"timeStamp":"2017-12-12 23:12:54",
"isActive":"Y"
}
现在我想将这些数据保存到服务表中。
Service.java
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "DATETIME_STAMP")
private java.util.Calendar dateTimeStamp;
public ServiceHealth(String serviceName, char isActive, String DatetimeStamp) {
this.serviceName = serviceName;
this.isActive = isActive;
this.dateTimeStamp=dateTimeStamp;
}
数据类: -
java.util.Date dt = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(dt);
System.out.println("Date Time is "+currentTime);
ServiceHealth serviceHealth = new ServiceHealth("", "",currentTime);
currentTime
的值将保存为null
。任何人都可以看看并告诉我哪里出错了。
我在控制台中将[TIMESTAMP] - [null]绑定参数[1]。我在postGres上使用了spring boot
我正在使用JpaRepository将数据保存到数据库中。
答案 0 :(得分:1)
哇
this.dateTimeStamp=dateTimeStamp;
应该是
this.dateTimeStamp = DatetimeStamp;
^
检查IDE。
public ServiceHealth(String serviceName, char isActive, String DatetimeStamp) {
this.serviceName = serviceName;
this.isActive = isActive;
this.dateTimeStamp = dateTimeStamp;
}
这里字段serviceName和isActive填充了相同名称的参数。但是,使用参数DatetimeStamp的字段dateTimeStamp 未填充。 (但是使用旧的字段值本身 - 一个noop。)最好是重命名参数名称:
public ServiceHealth(String serviceName, char isActive, String dateTimeStamp) {
事实上,几乎每个IDE都应标记该分配。