Annotation实现,xml不做讨论
1.@GeneratedValue//id自动增长(常用。默认为auto,在MySQL中为auto_increment;在Oracle中为sequence)
不同的数据库平台方法不同
2.@TableGenerator(
name="Student_GEN", //生成器的名字
table="GENERATOR_TABLE", //创建的表名
pkColumnName="pk_key", //表中的字段名
valueColumnName="pk_value", //表中的字段名
pkColumnValue="Student", //pk_key字段对应的值
allocationSize=1 //每次增长的值
)
@GeneratedValue(strategy=GenerationType.TABLE,generator="Student_GEN")
创建一个表,通过这个表自动增长id,一般用于跨数据库平台
比如Student表中就是在GENERATOR_TABLE这张表中取pk_key值为Student的记录对应的pk_value,1
被取走之后值会加上allocationSize,+1
@Entity
//@TableGenerator(
// name="Student_GEN", //生成器的名字
// table="GENERATOR_TABLE", //创建的表名
// pkColumnName="pk_key", //表中的字段名
// valueColumnName="pk_value", //表中的字段名
// pkColumnValue="Student", //pk_key字段对应的值
// allocationSize=1 //每次增长的值
//)
public class Student {
private int id;
private String name;
private int age;
@Id
@GeneratedValue//(strategy=GenerationType.TABLE,generator="Student_GEN")
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;
}
}