我是struts和Hiberante的新手。 我试图在SQL表中映射日期,总是插入空值。 我没有清楚地了解代码中的错误或错误在哪里?
package com.acv.in.bean;
import java.io.Serializable;
import java.util.Date;
public class Student implements Serializable{
private long stuid;
private String sfname;
private String slname;
private Date dob;
private String standard;
private String ffname;
private String flname;
private String mfname;
private String mlname;
private String gfname;
private String glname;
private long phone;
public Student(String sfname, String slname, Date dob, String standard,
String ffname, String flname, String mfname, String mlname,
String gfname, String glname, long phone) {
super();
this.sfname = sfname;
this.slname = slname;
this.dob = dob;
this.standard = standard;
this.ffname = ffname;
this.flname = flname;
this.mfname = mfname;
this.mlname = mlname;
this.gfname = gfname;
this.glname = glname;
this.phone = phone;
}
public Student() {
}
//getter and setter
}
我的映射文件是
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.acv.in.bean.Student" table="student" >
<id name="stuid" type="long" >
<column name="stuid" />
<generator class="org.hibernate.id.TableHiLoGenerator"/>
</id>
<property name="ffname" type="string" column="ffname" />
<property name="flname" type="string" column="flname" />
<property name="gfname" type="string" column="gfname" />
<property name="glname" type="string" column="glname" />
<property name="mfname" type="string" column="mfname" />
<property name="mlname" type="string" column="mlname" />
<property name="sfname" type="string" column="sfname" />
<property name="slname" type="string" column="slname" />
<property name="standard" type="string" column="standard" />
<property name="dob" type="date" column="dob" />
<property name="phone" type="long" column="phone" />
</class>
</hibernate-mapping>
是版本问题(对于hibernate / struts)?
答案 0 :(得分:3)
日期可以使用以下格式:
|--------------|-------------------------------------|---------------|
| Mapping type | Java type | ANSI SQL Type |
|--------------|-------------------------------------|---------------|
| date | java.util.Date or java.sql.Date | DATE |
| time | java.util.Date or java.sql.Time | TIME |
| timestamp | java.util.Date or java.sql.Timestamp| TIMESTAMP |
| calendar | java.util.Calendar | TIMESTAMP |
| calendar_date| java.util.Calendar | DATE |
|--------------|-------------------------------------|---------------|
您的编程代码段看起来是正确的。让我建议一些改变,看看他们是否可以提供帮助。用这个替换标题:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
此外,它值得尝试使用本机生成器类(虽然我怀疑这是问题)。
<generator class="native"/>
最后:
<property name="dob" type="calendar_date" column="dob" />
如果这没有帮助,那么提供更多代码(连接和DAO类等)
答案 1 :(得分:2)
这里集成Hibernate与数据库。它没有任何与Hibernate集成的struts角色。它独立工作。
Struts是前端(UI)Maping框架,Hibernate是后端(数据库)映射框架。
对于集成日期与Hibernate一起使用Java.util.Date。或者尝试使用Joda DateTime。