Hibernate注解开发实践:PO类编写、关联映射和数据检索
需积分: 9 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,可以快速开发高性能的数据访问层。
2018-08-12 上传
2018-03-21 上传
2014-10-25 上传
2010-08-04 上传
2018-04-18 上传
2017-01-25 上传
2007-09-19 上传
壹叁壹肆
- 粉丝: 115
- 资源: 9
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常