1、在上一节可在数据库中看到创建出来的表和字段,是通过 Entity bean 来创建的,而创建表名和字段名的规则是怎样的?
有类,代码如下:
package learn.jpa.bean; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Person { @Id @GeneratedValue private Integer id; private String name; public Person(){} public Person(String name){ this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
表名:是根据 Entity 的名称来命名的
字段:是根据属性名称来命名的
private Integer id;
private String name;
以上的 id 和 name 是称之为字段, getId() 和 setId() 中的 id 称之为属性。
2、更改表名和字段名或长度,如下代码所示:
package learn.jpa.bean; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="t_person") public class Person { @Id @GeneratedValue private Integer id; @Column(length=64,name="personName",nullable=false) private String name; public Person(){} public Person(String name){ this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3、日期和枚举型字段的映射,代码如下:
实体类:
package learn.jpa.bean; 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.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table(name="t_person") public class Person { @Id //@Id用于标记属性的主键 @GeneratedValue private Integer id; @Column(length=64,name="personName",nullable=false) private String name; // TemporalType.DATE 表示日期格式 例:2014-10-01 // TemporalType.TIME 表示时间格式 例:12:21:34 // TemporalType.TIMESTAMP 表示日期加时间格式 例:2014-10-01 12:21:34 @Temporal(TemporalType.DATE) private Date brithday; // @Enumerated 注解枚举型 // EnumType.STRING 表示保存到数据库的值是 MAN or WOMEN // EnumType.ORDINAL 表示保存到数据库的值是 MAN 和 WOMEN 所设置的索引值 @Enumerated(EnumType.STRING) @Column(length=5, nullable=false) private Gender gender; public Person(){} public Person(String name){ this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBrithday() { return brithday; } public void setBrithday(Date brithday) { this.brithday = brithday; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } }
枚举类:
package learn.jpa.bean; /** * * @doc 性别枚举型 * */ public enum Gender { MAN,WOMEN; }
说明:
1、TemporalType.DATE 表示日期格式 例:2014-10-01
2、TemporalType.TIME 表示时间格式 例:12:21:34
3、TemporalType.TIMESTAMP 表示日期加时间格式 例:2014-10-01 12:21:34
@Enumerated 注解枚举型
1、EnumType.STRING 表示保存到数据库的值是 MAN or WOMEN
2、EnumType.ORDINAL 表示保存到数据库的值是 MAN 和 WOMEN 所设置的索引值
时间: 2024-10-18 00:36:29