Hibernate is a object-relational mapping tool for Java language which also implements in Java JPI, Hibernate's primary feature is mapping from Java classes to database tables.
如下图

在实际中,一个类对应一个表,对象对应记录(行), 而对象的属性对应列。

好处:
1.不会错误性重复,写一次,一旦创立instance,就会在database填表出现.
2.不会需要太多的SQL知识, 并且OOP能够得到很好的利用
坏处:
1.有时候需要setUp,xml文件会出问题.
2.功效会不如原SQL language好.
JPA
JPA是一种实现ORM的规范,而hibernate是ORM的实现。
Hibernate中的sessionFactory, session, transaction
sessionFactory用来生产Session,而这里的session并不是用于http与用户的交互,而是应用程序和数据库的交互,一旦要更新数据库,则需要begintransaction, 获得session,详情如下代码.
public void save(Student student) {
Transaction transaction= getSession().beginTransaction(); //开启事务
getSession().save(student);//只要传一个Student的对象实例
transaction.commit(); //事务提交
getSession().close();//关闭session
}</span>
只有通过这样才能实现和数据库的交互
Java和Hibernate代码的对应

Hibernate中的Annotation
@Entity 用于对实体类的标注
@Table 用于更改Java类在映射的table名
@Id 属于Table的primary Key
@Column sql表中的Column
@GeneratedValue
用于生成主键,可以在variable之上,也可以在主键之上.
@Embeddable 当一个primary key由两个以上的column组成的时候
下面是EmbeddableId的例子

Assiociations:
@OnetoOne, ManyToOne, OneToMany

网友评论