020:ID生成策略XML配置(连接mysql)
1、工程-----右键-----new-----Source Folder【test】
下面对ID生成测试
test下面新建一个包和类:com.bjsxt.hibernate-----HibernateIDTest.java
规定:
(1)在类的后面加test表示这是一个测试类,在方法的前面加Test表示这是一个测试类,在方法的前面加Test表示这是一个测试方法。
<id name="id" >
<generator class="native"></generator>
</id>
(2)uuid,native是一种ID生成算法
private int id;
……
private Int getId(){
return id;
}
private void setId(int id){
this.id=id;
}
(3)
能自动生成,不再设制StudentTest,java里面的s.setId(1);
*******************************************************
Student.java
package com.bjsxt.hibernate;
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return 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;
}
}
Teacher.java
package com.bjsxt.hibernate;
import java.beans.Transient;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Teacher {
private int id;
private String name;
private String title;
private String yourwifeName;
private Date birthDate;
private ZhiCheng zhiCheng;
@Enumerated(EnumType.STRING)
public ZhiCheng getZhiCheng() {
return zhiCheng;
}
public void setZhiCheng(ZhiCheng zhiCheng) {
this.zhiCheng = zhiCheng;
}
@Temporal(TemporalType.DATE)
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
@Transient
public String getYourwifeName() {
return yourwifeName;
}
public void setYourwifeName(String yourwifeName) {
this.yourwifeName = yourwifeName;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
Student.hbm.xml
<?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.bjsxt.hibernate.Student" table="student">
<id name="id" >
<generator class="native"></generator>
</id>
<property name="name"></property>
<property name="age"></property>
</class>
</hibernate-mapping>
HibernateIDTest.java
package com.bjsxt.hibernate;
import java.util.Date;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.bjsxt.hibernate.Student;
public class HibernateIDTest {
private static SessionFactory sessionFactory;
@BeforeClass
public static void beforeClass() {
try {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (HibernateException e) {
e.printStackTrace();
}
}
@AfterClass
public static void afterClass() {
sessionFactory.close();
}
@Test
public void testStudentSave() {
Student s = new Student();
s.setName("zhangsan");
s.setAge(8);
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
}
/*
@Test
public void testTeacherSave() {
Teacher t = new Teacher();
t.setId(1);
t.setName("t1");
t.setTitle("middle");
t.setBirthDate(new Date());
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(t);
session.getTransaction().commit();
}
*/
public static void main(String[] args) {
beforeClass();
}
}
hibernate.cfg.xml
<!-- Database connection settings -->
<!-- 连接数据库 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<mapping resource="com/bjsxt/hibernate/Student.hbm.xml"/>