native算法生成随机id
吸取了上一次程序调试的经验,把表删掉,在新表的基础上运行这些程序
Student.java
package cn.edu.hpu.model;
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
//native算法生成随机id
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
<id name="id">
<generator class="native"></generator>
</id>
package cn.edu.hpu.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import cn.edu.hpu.model.Student;
public class StudentTest {
public static void main(String[] args) {
Student s=new Student();
s.setId(12);
s.setName("s1");
s.setAge(1);
Configuration cfg=new Configuration();
SessionFactory sf=cfg.configure().buildSessionFactory();
Session session=sf.openSession();//得到session
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
Student s1=new Student();
s1.setName("s2");
s1.setAge(2);
Session session1=sf.openSession();//得到session
session1.beginTransaction();
session1.save(s1);
session1.getTransaction().commit();
session1.close();
sf.close();
}
}
hibernate生成的sql语句:
Hibernate: insert into stu (name, age) values (?, ?)
Hibernate: insert into stu (name, age) values (?, ?)
即使设置了id,也依然从1开始