我的目标非常简单。将当前日期存储在Oracle Global Temporary表中,并使用Spring MVC和Hibernate作为ORM在JavaScript页面上显示该日期。
我写的代码是(请注意系统时间是“2014年3月29日11:29:44 2014年东部时间”):
public List<TmpClass> getData() {
Integer sno = 1;
/* Write query to save the data in the temporary table. Function calls getSession().save(..) */
Date date = new Date();
saveData(new TmpClass(sno, date));
/* Retrieve the data from TmpClass class. Function calls getSession().queryObject("from TmpClass") */
return retrieveData();
}
配置文件: 资源路径上的hibernate.cfg.xml:
<hibernate-configuration>
<session-factory>
<mapping class="com.tesco.larc.forms.TmpGenUtil" />
</session-factory>
</hibernate-configuration>
-servlet.xml有
<!-- Data Source for Oracle -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- Hibernate Session Factory Configuration -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.myproject" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
</props>
</property>
</bean>
TmpClass
@Entity
@Table(name = "TMPTABLE")
public class TmpClass {
@Id
@Column(name = "SNO")
private Integer sno;
@Column(name = "dcol1")
private Date date;
//getter and setter methods omitted
Controller类,在Model中创建存储上述函数的输出。
@RequestMapping(value = {"/", "index"}, method = RequestMethod.GET)
public String displayContacts(Model model) {
model.addAttribute("Data", contactService.getData());
return "eInfoScreen";
}
JavaScript代码是:
<c:forEach items="${Data}" var="list">
<tr>
<td>${list.id}</td>
<td>${list.date}</td>
</tr>
</c:forEach>
我的日期是:
Sr BAR_DATE
1 **88-Mar-2014**
我无法弄清楚,为什么不是2014年3月29日,它显示为2014年3月88日。
非常感谢任何帮助或指针。
答案 0 :(得分:2)
看起来,当您定义日期格式时,您使用的是DD
,这是一年中的某一天而不是dd
。 (3月29日是一年中的第88天。)