Hibernate学习(三)

说实话,这是看视频学习最烂的阶段,也不知道为什么Hibernate会讲的这么差

利用注解将实体类的属性持久化到数据库有下面几种情况:

1.实体类在数据库中没有相对应的表,则默认会按类名在数据库中创建新表:

如:

public class Teacher

会在数据库中创建名为Teacher的表,当然可以指定一个表名,如下:

@Entity @Table(name="Teacher")
public class Teacher 

2.实体类中的属性与表中的列是一一对应的,一般只要在是ID的属性的getter上加上注解就可以了,其他所有属性默认与其他列对应,当然是按属性名跟列名相同来对应的:

private int id;
private String name;
private String title;
@Id
 public int getId() {
  return id;
 }

假如属性名与列名不一样的时候:如下指定

@Column(name="_title")
	public String getTitle() {
		return title;
	}

3.实体中后来增加了一些属性,并且也需要持久化到数据库,则默认会在表中新建与新属性对应的列,列名与属性名一致,同时可以指定:

private Date workDate = new Date();
@Column(name="workDate")//@Temporal(TemporalType.DATE)//指定Date类型的精度
	public Date getWorkDate() {
		return workDate;
	}

4.实体中有些属性不希望持久化到数据库:

@Transient
 public String getTest() {
  return test;
 }

5.将日期类型持久化到数据库:

private Date workDate = new Date();
@Column(name="workDate")//@Temporal(TemporalType.DATE)//指定Date类型的精度,主要是指在数据库中存取时的精度,比如TemporalType.DATE在数据库中的类型是datetime
public Date getWorkDate(){
	return workDate;
}

6.将枚举类型持久化到数据库:

public enum Level {
	A,B,C,D;
}
private Level level = Level.A;
@Enumerated(EnumType.ORDINAL)//.STRING)
 public Level getLevel() {
  return level;
 }
//ordinal在数据中存入的是枚举值的在定义时候的顺序,从0开始,string存入的是枚举值的字符串表示,比如就是A

7.其他大部分类型由hibernate作转换,比如Integer 类型对应数据库中 int类型,String类型对应数据库中的varchar 等等


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值