Hibernate注解开发实践:PO类编写、关联映射和数据检索

需积分: 9 1 下载量 180 浏览量 更新于2024-07-19 收藏 199KB DOCX 举报
Hibernate基础知识点总结 Hibernate是一款流行的Java持久层框架,提供了强大的数据库交互能力。下面是 Hibernate 基础知识点总结,涵盖了 PO 类的注解开发、关联映射、HQL、QBC、本地 SQL 检索数据等方面。 一、PO 类的注解开发 PO(Plain Ordinary)类是 Hibernate 中的实体类,用于描述数据库中的表结构。使用注解可以完成 PO 类的编写。常用的注解包括: * @Entity:声明一个实体,表示该类对应数据库中的一个表。 * @Table:配置指定映射的表名,用于指定表名。 * @Id:唯一主键ID,用于指定主键字段。 * @GeneratedValue:主键生成策略,用于指定主键的生成方式。 * @Column:配置属性与列的映射,用于指定列名和列类型。 * @Temporal:配置日期格式,用于指定日期类型,例如 DATE、TIME、TIMESTAMP。 例如: ```java @Entity @Table(name="t_d3h01_book") public class Book { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String name; @Temporal(TemporalType.DATE) private Date publicDate; @Column(precision=20, scale=2) private Double price; // getters and setters } ``` 二、关联映射 关联映射是指在 PO 类之间建立的关系,例如一对一、一对多、多对多等。使用注解可以完成关联映射。常用的注解包括: * @OneToOne:一对一关系。 * @OneToMany:一对多关系。 * @ManyToOne:多对一关系。 * @ManyToMany:多对多关系。 例如: ```java @Entity @Table(name="t_man") public class Man { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String name; @OneToOne private Address address; // getters and setters } @Entity @Table(name="t_address") public class Address { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String street; private String city; // getters and setters } ``` 三、HQL、QBC、本地 SQL 检索数据 Hibernate 提供了多种方式来检索数据,包括 HQL、QBC、本地 SQL。 * HQL(Hibernate Query Language):Hibernate 的查询语言,用于编写查询语句。 * QBC(Query By Criteria):一种基于Criteria的查询方式,用于编写查询语句。 * 本地 SQL:使用本地数据库的 SQL 语句来检索数据。 例如: ```java // HQL Query query = session.createQuery("from Book where price > 100"); List<Book> books = query.list(); // QBC Criteria criteria = session.createCriteria(Book.class); criteria.add(Restrictions.gt("price", 100)); List<Book> books = criteria.list(); // 本地 SQL SQLQuery query = session.createSQLQuery("select * from t_book where price > 100"); List<Book> books = query.list(); ``` Hibernate 是一种功能强大且灵活的持久层框架,提供了多种方式来完成数据的持久化和检索。通过使用 Hibernate,可以快速开发高性能的数据访问层。