一、hiberante框架概述
(1).Hibernate是一种轻量级的javaEE持久层解决方案,是一种关系型数据库的ORM映射框架,是完全的对数据库SQL进行封装,使用java对象操作,生成相应的SQL,完成对底层数据的操作.
(2).使用Hibernate的好处
1.简化编码操作
2.应用其内部的优化机制(一级,二级缓存,抓取策略等),来提高数据的操作性能
3.可使用java对象操作数据库,能对底层数据操作进行完全的封装
二、Hibernate入门开发
1.搭建Hibernate环境,导入相应的jar包
可从http://sourceforge.net/projects/hibernate/files 下载开发包
所需jar包如下:
一些包的描述:
*hibernate3.jar—— 核心jar包
*hibernate-jpa-2.0-api-1.0.1.Final.jar——hibernate注解、web项目中依赖 包
*slf4j,slf4j-log4j12-1.7.2.jar——hibernate框架使用默认日志技术,需要与log4j整合实现
2.建立相依的实体类,以及相应的hbm(映射文件)
A.创建实体类Person.java,包含的属性为id,name,city.其对应的映射文件为(Person.hbm.xml)
B.主要配置如下
<hibernate-mapping>
<!--
name 完整类名,table 表名,catalog 数据库名
-->
<class name="com.w2cboy.model.Person" table="person" catalog="ceshidb">
<!-- 主键生成策略配置 -->
<!--
name Perosn类中生成注解 属性名
column 表中列名
type 数据类型 (Java数据类型、Hibernate数据类型 、 SQL数据类型 )
-->
<id name="id" column="id" type="int">
<!-- 使用本地策略 -->
<generator class="native"></generator>
</id>
<!-- 配置其它属性 -->
<property name="name" column="name" type="java.lang.String"></property>
<!-- SQL类型 必须编写 column 元素-->
<property name="city" column="city" type="string"></property>
</class>
</hibernate-mapping>
3.创建并配置hibernate核心配置文件
在src目录下创建hibernate.cfg.xml文件,主要配置JDBC连接信息
其配置信息如下
<hibernate-configuration> <!-- Hibernate中数据库连接 通过 session对象进行管理 --> <session-factory> <!-- 连接数据库,必须配置 JDBC 四个基本连接参数 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///ceshidb</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123</property> <!-- 配置数据库方言 不同 数据库 SQL 不完全一样--> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 在控制台打印生成的SQL语句 --> <property name="hibernate.show_sql">true</property> <!-- 对控制台输出SQL语句进行格式化,为了方便阅读 --> <property name="hibernate.format_sql">true</property> <!-- 可以自动根据类生成DDL 建表语言,完成自动建表 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 在核心配置文件中 加载 hbm 映射文件 --> <mapping resource="com/w2cboy/model/Person.hbm.xml"/> </session-factory> </hibernate-configuration>
4.编写测试用例(实现CRUD操作)
1.session工具类:
//实例化配置对象,加载配置文件 hibernate.cfg.xml
Configuration configuration = new Configuration().configure();
//创建会话连接工厂
SessionFactory sessionFactory = configuration.buildSessionFactory();
//创建会话
Session session = sessionFactory.openSession();
//开启事务
Transaction transaction = session.beginTransaction();
//提交事务,释放资源
transaction.commit();
session.close();
sessionFactory.close();
2.CRUD操作
2) 根据id 查询 通过 Session类 提供 get/load 方法 int id = 1; Person person= (Person ) session.get(person .class, id); 3)修改update方法, 默认根据 id 修改 表其它所有字段 通过 Session类 提供 update person person = new Person (); person .setName("张三"); person .setCity("上海"); session.update(person); 4)删除操作, 根据id 删除, 通过Session类提供 delete person person = new Person (); person.setId(1); session.delete(perosn); 5) 查询所有数据 通过Query 接口完成, Query接口 接收HQL 查询语句 Query提供子接口 SQLQuery , 接收SQL 查询语句 Hibernate框架内部提供,格式和SQL语句非常类似,区别SQL 面向数据表查询语句, HQL面向Java类和对象查询语句 HQL查询 String hql = "from Person";//面向类和对象 Query query = session.createQuery(hql); //获得Query对象 List<Person> persons= query.list();//执行查询 SQL 查询 String sql = "select * from person"; SQLQuery sqlQuery = session.createSQLQuery(sql);
所以总的来说,hiberante的配置文件,和映射文件是实现的关键。
相关推荐
例如,可以通过Hibernate提供的`Session`对象来执行增删改查等操作。 ```java package com.fejd.companyrm.dao; import java.util.List; import com.fejd.companyrm.model.Employee; public interface ...
5. **CRUD操作**:演示如何使用Hibernate进行增删改查操作,包括save()、update()、delete()和load()、get()方法。 6. **HQL和Criteria查询**:讲解Hibernate特有的查询语言HQL,以及Criteria API,它们是如何替代...
#### Hibernate概述与ORM思想 - **定义**:Hibernate是一个开源的、轻量级的对象关系映射(Object-Relational Mapping,简称ORM)框架,它主要应用于JavaEE架构中的DAO(Data Access Object)层。通过提供一套完整...
- **基本CRUD操作**:学习如何使用Hibernate进行基本的数据增删改查操作。 - **查询技巧**:掌握HQL(Hibernate Query Language)和Criteria API等查询方式,以更灵活地从数据库中检索数据。 #### 四、ORM概述 **...
3. 使用 Session 进行增删改查操作,体验 Hibernate 的便利性。 4. 编写 HQL 查询或使用 Criteria API 进行复杂检索。 5. 学习如何使用缓存提升应用程序性能。 通过这个 Hibernate 入门教程,你应该能够理解 ...
5. **CRUD操作**:通过Hibernate进行数据库的增删改查操作,学习save()、update()、delete()和get()等方法的使用。 6. **HQL和QBC查询**:学习Hibernate查询语言(HQL)和Criteria API,理解它们与SQL的区别,并...
**实现业务逻辑**:编写应用程序代码,使用Hibernate提供的API进行数据的增删改查操作。 - **示例**:以创建一个简单的新闻条目为例,首先定义一个`News.java`类,然后使用Hibernate进行数据的持久化操作。这个...
- 执行增删改查等操作。 - 关闭`Session`和`SessionFactory`。 #### 七、运行测试 最后,运行测试类以验证所有操作是否正确无误。如果一切顺利,应该可以看到预期的结果输出。 #### 八、总结 通过以上步骤,我们...
3. Session:Hibernate的工作核心,负责对象的持久化操作,提供增删改查的功能。 4. Transaction:处理数据库事务,确保数据的一致性。 5. Query:提供了HQL(Hibernate Query Language)和Criteria API,用于查询...
- CRUD操作:演示如何使用Session进行增删改查操作,包括save()、update()、delete()和get()、load()方法。 - Transaction管理:理解事务在Hibernate中的应用,使用Transaction进行原子性操作。 6. **Criteria...
4. **编写业务逻辑**:使用Hibernate API进行对象的增删改查操作。 5. **测试验证**:运行应用,验证数据持久化是否成功。 通过上述分析,我们可以看到,Hibernate不仅极大地简化了Java应用与数据库的交互,还提高...
4. Session:是与数据库的会话,负责实体的持久化操作,如增删改查。 5. Transaction(事务):Hibernate支持JTA和JDBC事务管理,确保数据操作的一致性。 **四、基本操作** 1. CRUD操作:Create(创建)、Read...
Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将引导你入门Hibernate,通过一个简单的Java应用实例,理解其基本...
它提供了增删改查(CRUD)操作,以及事务管理。例如,save()方法用于持久化对象,get()和load()用于获取对象,update()和merge()用于更新,delete()用于删除。 六、Criteria查询 Hibernate提供了Criteria API,允许...
- **Session**: 代表与数据库的一次会话,提供了增删改查等操作接口。 - **Transaction**: 事务管理,确保一组操作要么全部完成,要么全部不执行。 - **Mapping**: 映射机制,即Java对象与数据库表之间的映射关系,...
- **Hibernate应用**:学会使用Hibernate实现数据的持久化,包括数据库的增删改查操作,以及HQL(Hibernate Query Language)和Criteria API的查询方式。 - **Oracle数据库操作**:掌握Oracle数据库的常见操作及性能...
- CRUD操作:掌握如何通过Hibernate实现增删改查的基本操作。 - HQL与Criteria查询:学习Hibernate特有的查询语言HQL,以及Criteria API,用于更灵活的查询。 - 数据缓存:了解Hibernate的二级缓存机制,提高应用...