美文网首页
全栈开发009 Spring开发 Hibernate

全栈开发009 Spring开发 Hibernate

作者: 攻城狮托马斯 | 来源:发表于2020-04-18 20:29 被阅读0次

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. 

如下图

先是Project中的Model层,通过ORM, Mapping到Database的table中去

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

好处:

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

相关文章

网友评论

      本文标题:全栈开发009 Spring开发 Hibernate

      本文链接:https://www.haomeiwen.com/subject/mifpvhtx.html