Hibernate框架(一)

本文介绍Hibernate框架的基础知识,包括其作为对象关系映射工具的作用、配置文件详解、基本操作流程及查询方式等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate

一个开源的对象关系映射框架

对JDBC进行了非常轻量级的对象封装

将JavaBean对象和数据库的表建立对应关系

Hibernate简化了JDBC繁琐的编码


Hibernate将数据库的连接信息都存放在配置文件中


持久化

将程序中数据子瞬时状态和持久状态间转换的机制


持久化层

JDBC就是持久化机制

将数据程序直接保存成文本文件也是持久化进制的一种实现

在分层结构中,Dao层(数据访问层)也被称为持久化层

持久化完成的操作

将对象保存到关系型数据库中

将关系型数据库中的数据读取出来以对象的形式封装



ORM(Object Relational Mapping,对象关系映射)

编写程序的时候,以面向对象的方式处理数据

保存数据的时候,却以关系型数据库的方式存储

ORM解决方案包含下面四个部分

在持久化对象上执行基本增、删、改、查操作的API

用于对持久化对象或属性查询的一种语言或者API

用于实体关系映射的工具

能够与事物对象交互、执行检查、延迟加载以及其他优化功能


hibernate.cfg.xml 示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">hibernate</property>
<property name="connection.password">Jredu12345</property>
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.validate">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="show_sql">true</property>
<mapping resource="com/jredu/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>


Hibernate准备工作



创建Hibernate配置文件

用于配置数据库连接

运行时所需的各种属性

默认文件名为“hibernate.cfg.xml”



使用Hibernate操作数据库需要7个步骤 如下:

//1.读取并解析配置文件
Configuration cfg=new Configuration().configure();
//注册服务对象
StandardServiceRegistry registry=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
//2.解析映射文件,创建SessionFactory
SessionFactory factory=cfg.buildSessionFactory(registry);
//3.打开session
Session session=factory.openSession();
//4.增删改需要开启事务
Transaction tran=session.beginTransaction();
   5.数据库操作
session.save(user);
//6.提交事务
  tran.commit();
//7.关闭session
session.close();


Hibernate支持两种主要的查询方式

HQL 查询

是一种面向对象的查询语言,其中没有表个字段的概念,只有类、对象和属性的概念

Criteria 查询

又称“对象查询”,它用面向对象的方式将构造查询的过程做了封装


使用HQL可以避免使用JDBC查询的一些弊端

语法:



使用HQL需要4步

//1.读取并解析配置文件
Configuration cfg=new Configuration().configure();
//注册服务对象
StandardServiceRegistry registry=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
//2.解析映射文件,创建SessionFactory
SessionFactory factory=cfg.buildSessionFactory(registry);
//3.打开session
session=factory.openSession();

执行HQL语句


where子句指定限定条件

通过与sql相同的比较操作符指定条件

如:



?占位符


例:



未完待续。。












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值