hibernate annotation主要是利用JPA的接口使元数据注释代替xml映射文件。如:
import java.io.Serializable; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="user") public class User implements Serializable{ private static final long serialVersionUID = 1L; private int id; private int age; private String name; private String password; @Id //采用数据库自增方式 @GeneratedValue(strategy=GenerationType.AUTO) //@GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static long getSerialversionuid() { return serialVersionUID; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
hibernate.cfg.xml 配置
<hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///test</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.hbm2ddl.auto">update</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <mapping class="com.annotation.User" /> </session-factory> </hibernate-configuration>
hibernate.cfg.xml的读取:
Configuration cfg = new AnnotationConfiguration().configure();
多对一关系,一对多:
import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name = "class") public class Class implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; private Set<Student> st=new HashSet<Student>(); @Id @GeneratedValue 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; } @OneToMany(mappedBy="classes",targetEntity=Student.class) @JoinColumn(name="classID") public Set<Student> getSt() { return st; } public void setSt(Set<Student> st) { this.st = st; } public static long getSerialversionuid() { return serialVersionUID; } }
import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity @Table(name = "student") public class Student implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; private String password; private Class classes; @Id @GeneratedValue 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 String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public static long getSerialversionuid() { return serialVersionUID; } @ManyToOne @JoinColumn(name="classID") public Class getClasses() { return classes; } public void setClasses(Class classes) { this.classes = classes; } }