我做的一个简单的hibernate应用,照着例子做的,结果是每插入一条新记录,就将上一次插入的记录覆盖了.发下附上我的代码,请大家帮忙.//Mysql DB
DROP TABLE person;CREATE TABLE person
(
id varchar(32) not null primary key,
name varchar(20) not null,
password varchar(20) not null,
sex varchar(2),
email varchar(30)
);//hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/sunpool</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">10</property>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>

<mapping resource="model/service/dao/Person.hbm.xml" />
<mapping resource="model/service/dto/User.hbm.xml" />

</session-factory>
</hibernate-configuration>//person.hbm.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>
<class name="model.service.dao.Person" table="person">
<id name="id" column="id" type="string">
<generator class="uuid.hex" />
</id>
<property name="name" column="name" type="string" not-null="true" />
<property name="password" column="password" type="string" not-null="true" />
<property name="sex" column="sex" type="string" />
<property name="email" column="email" type="string" />
</class>
</hibernate-mapping>//PersonOperate.java
package model.service.dao;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class PersonOperate {
Session session = null;
public PersonOperate() {
SessionFactory sf = new Configuration().configure().buildSessionFactory();
session  = sf.openSession();
}

public void insert(Person p) {
Transaction tx = session.beginTransaction();
session.save(p);
tx.commit();
session.close();
}
}//Test.java
package model.service.dao;import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class Test {
public static void main(String[] args) {
try {
Person p = new Person();
p.setName("bbbbbb");
p.setPassword("bbbbbb");
p.setSex("girl");
p.setEmail("[email protected]");
PersonOperate po = new PersonOperate();
po.insert(p);
} catch (HibernateException e) {
e.printStackTrace();
}
}
}