hibernate之注解

来源:互联网 发布:淘宝上代购药品 编辑:程序博客网 时间:2024/06/10 23:26

使用hibernate注解的目的—-为了简化繁琐的ORM映射文件(*.hbm)的配置

JPA与Hibernate的关系

  • JPA全称 Java Persistence API; JPA注解是javaee的规范与标准。
  • JPA 是标准的接口,hibernate是实现,但是hibernate功能更强大,是JPA 的超集。
  • hibernate通过三个组件来实现与jpa的关系;分别为hibernate-annotation hibernate-entitymanager hibernate-core组件。
  • 一般开发中,优先考虑用JPA注解,有利于程序的移植与扩展。

    hibernate注解的分类:

  • 类级别注解(@Entity实体类 @Table @Embeddable嵌入类)

  • 属性级别注解
  • 映射关系注解

hibernate.cfg.xml文档的回顾:
这里写图片描述

打开数据库的用户名,密码,驱动,数据库的URL地址,使用的方言,是否在结果中显示sql语句,是否格式化sql语句,是否创建,更新..表结构,与会话有关的配置。

类级别注解

@Entity 映射实体类, 对应数据库中的表。@Entity(name=”tablename”)(name 可选,对应数据库中的一个表,若表名与实体类名相同,则可以省略)
注意:使用@entity时,要指定实体类的主键属性

写完实体类后,要将它写入hibernate.cfg.xml中 语句为<mapping class="包名.类名">

测试 表结构 创建的例子

@Table(name=”“,catalog=”” ,schema=”“)
与@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息

name:可选,映射表的名称,默认表名和实体名称一致,只有在不一致的情况下才要指定表名
catalog: 表示目录, 可选,表示Catalog名称,默认为空
schema: 表示模式,可选,表示Schema名称,默认空。

schema与catalog:
这里写图片描述

描述本图:一个数据库可以包含多个目录(catalog),一个目录可以包含多个模式(schema),一个模式包含多个数据库对像

详情

不同数据库对schema和catalog的支持度不同]
a

mysql不支持catalog不用显示,schema默认为数据库名称

如图显示的结果,创建的表名前有hibernate表示模式
这里写图片描述

@Embeddable

表示非实体类,所以它不会映射成一张表,但可以嵌入到另一个实体类中作为属性而存在。

实例
本人也写有代码,在diyhibernate.demo.Student

原创粉丝点击