public class generator extends hibernateUtil {
/*
* increment机制是int 查找当前id的最大值加1,两次查询效率底点
* Hibernate: select max(id) from Person
Hibernate: insert into Person (name, id) values (?, ?)
*/
@Test
public void testIncrement()
{
Session session = factory.openSession();
Transaction tran = session.beginTransaction();
Person p = new Person();
p.setName("yyyyy");
session.save(p);
tran.commit();
session.close();
}
/*
* Hibernate: insert into Person (name, id) values (?, ?)
* 1;表必须支持自动增长机制 在Mysql中加入autoincrement
* 2;主键的产生是数据库产生的,并不是由hibernate产生的
* 3:比increment效率高
*/
@Test
public void testIdentity()
{
Session session = factory.openSession();
Transaction tran = session.beginTransaction();
Person p = new Person();
p.setName("zzzzz");
session.save(p);
tran.commit();
session.close();
}
/*
* assigned产生机制
* 由程序员手动添加id,一般测试的时候用,企业里面用的少
*/
@Test
public void testAssigned()
{
Session session = factory.openSession();
Transaction tran = session.beginTransaction();
Person p = new Person();
p.setName("zzzzz");
p.setId("222");
session.save(p);
tran.commit();
session.close();
}
/*
* UUID是hibernate内部生产的
* id 必须是字符串类型的
* Hibernate: insert into Person (name, id) values (?, ?)
*/
@Test
public void testUUID()
{
Session session = factory.openSession();
Transaction tran = session.beginTransaction();
Person p = new Person();
p.setName("QQQQQ");
session.save(p);
tran.commit();
session.close();
}
}