一、Hibernate
Hibernate简介:
Hibernate 是由 Gavin King 于 2001 年创建的开放源代码的对象关系框架。它强大且高效的构建具有关系对象持久性和查询服务的 Java 应用程序。
Hibernate 将 Java 类映射到数据库表中,从 Java 数据类型中映射到 SQL 数据类型中,并把开发人员从 95% 的公共数据持续性编程工作中解放出来。
Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象。
Hibernate 优势:
Hibernate 使用 XML 文件来处理映射 Java 类别到数据库表格中,并且不用编写任何代码。
为在数据库中直接储存和检索 Java 对象提供简单的 APIs。
如果在数据库中或任何其它表格中出现变化,那么仅需要改变 XML 文件属性。
抽象不熟悉的 SQL 类型,并为我们提供工作中所熟悉的 Java 对象。
Hibernate 不需要应用程序服务器来操作。
操控你数据库中对象复杂的关联。
最小化与访问数据库的智能提取策略。
提供简单的数据询问。
二、ORM概览
ORM :
ORM–Object Relational Mapping,是一个方便在关系数据库和类似java面想对象的编程语言中转换数据的技术。
相比JDBC的优点:
- 使用业务层代码访问对象而不是数据库中的表
- 从面向对象逻辑中隐藏SQL查询的细节
- 没有必要去处理数据库实现
- 实体是基于业务的概念而不是数据库的概念
- 事务管理和键的自动生成
- 应用程序的快速开发
ORM解决方案的实体组成:
1.一个API在持久类的对象上实现基本的CRUD操作;
2.一个API或语言来制定引用类和属性的查询;
3.一个可配置的服务用来制定映射元数据;
4.一个技术和事务对象交互来执行 dirty checking, lazy association fetching 和其它优化的功能。
三、Hibernate配置
hibernate中的文件介绍:
documentation : hibernate先关的文档资源,如API,参考手册等;
lib : 存放Hibernate框架的核心类库以及第三方类库。其中required子目录存放了hibernate项目所必需的的核心类库
project:hibernate中各个项目的源代码
使用前需要buildpath所有必须的jar包,lib下required中的所有jar包,以及连接MySQL的jar包
四、使用hibernate实现数据的增删改操作
1.数据库准备:
CREATE TABLE user_hibernate (
id int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
name varchar(32) NOT NULL COMMENT '用户名',
password varchar(32) DEFAULT NULL COMMENT '用户密码',
email varchar(32) DEFAULT NULL COMMENT '邮箱',
telephone varchar(32) DEFAULT NULL COMMENT '电话',
PRIMARY KEY(id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
在数据库中创建以上table
2.实体类准备:
User.java
package com.hibernate.user.demo;
public class User {
private int id;
private String name;
private String password;
private String email;
private String telephone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPasswor