Sha*_*rya 0 java hibernate hibernate-mapping
我是 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
}
Run Code Online (Sandbox Code Playgroud)
我的映射文件是
<?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>
Run Code Online (Sandbox Code Playgroud)
是版本问题(针对 hibernate/struts)吗?
日期可以采用以下格式:
|--------------|-------------------------------------|---------------|
| 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 |
|--------------|-------------------------------------|---------------|
Run Code Online (Sandbox Code Playgroud)
您的编程片段看起来是正确的。让我提出一些改变,看看它们是否有帮助。将您的标头替换为:
<?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">
Run Code Online (Sandbox Code Playgroud)
另外,值得尝试使用本机生成器类(尽管我怀疑这就是问题所在)。
<generator class="native"/>
Run Code Online (Sandbox Code Playgroud)
最后:
<property name="dob" type="calendar_date" column="dob" />
Run Code Online (Sandbox Code Playgroud)
如果这没有帮助,请提供更多代码(连接和 DAO 类等)
| 归档时间: |
|
| 查看次数: |
6097 次 |
| 最近记录: |