java来格式化日期并将其作为日期对象返回
我有一个pojo类,其中一个字段是date。在这里,我使用hibernate使用这些POJO将值插入数据库 我已为此属性设置了当前日期值,并将该值插入数据库。这里我需要以编程方式生成插入脚本。我已经这样做了,我正在控制台中打印insert语句。但在控制台中打印时,日期显示为2013年6月7日星期五04:49:07法案,插入语句为java来格式化日期并将其作为日期对象返回,java,hibernate,date,Java,Hibernate,Date,我有一个pojo类,其中一个字段是date。在这里,我使用hibernate使用这些POJO将值插入数据库 我已为此属性设置了当前日期值,并将该值插入数据库。这里我需要以编程方式生成插入脚本。我已经这样做了,我正在控制台中打印insert语句。但在控制台中打印时,日期显示为2013年6月7日星期五04:49:07法案,插入语句为 INSERT INTO tables (dates)values('Fri Jun 07 04:49:07 ACT 2013'); 我不想像这样生成脚本,我需要它作为
INSERT INTO tables (dates)values('Fri Jun 07 04:49:07 ACT 2013');
我不想像这样生成脚本,我需要它作为
INSERT INTO tables (dates)values('2013-06-07');
我知道我们可以使用简单的日期格式化程序,但我需要这个作为日期来设置POJO值。因此,如果是字符串,则不会将其设置到对象中
我正在形成如下查询
StringBuffer columnName = new StringBuffer();
columnName.append("insert into Tables values ('"+obj.getdates()+"')");
在我使用logger之前,当时查询是形成的,我认为hibernate负责格式化的,因为在插入之后,查询形成为
INSERT INTO tables (dates)values('2013-06-07');
但是现在通过硬编码,它给出了上面的查询,因为日期值不正确,所以没有执行
有人能帮我吗。在hibernate的情况下,格式化是由hibernate完成的,还是在后端自动转换的
谢谢将您的日期转换为java.sql.date
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
为什么需要将日期插入为
字符串
?您的JDBC驱动程序应该能够将其作为Date
插入。所以您实际上是使用JDBC插入数据,而不是Hibernate,对吗?如果是,请使用。如果使用Hibernate,那么只需创建实体的实例并将它们持久化。将SQL构建为串联字符串甚至StringBuffer/StringBuilder是非常糟糕的。您应该使用参数替换,或者在替换发生的位置放置“?”,或者使用带有替换标签的映射参数。在表中生成insert之前,我们需要生成sql insert语句。这是客户端的选择。他们要么通过hibernate使用已经完成的自动插入,要么在文件中生成sql脚本,然后手动使用这些脚本进行插入。虽然生成JDBC驱动程序并没有将其转换为格式化的日期