Hibernate HelloWorld-01

一、什么是hibernate?

1、它是连接 Java 应用程序和关系数据库的中间件。

2、它对 JDBC API 进行了封装,负责Java对象的持久化。

3、在分层的软件架构中它位于持久化层,封装了所有数据访问细节,使业务罗基层可以专注于实现业务逻辑。

4、它是一种 ORM(Object-Relation Mapping 对象-关系映射)工具,能够建立面向对象的域模型和关系模型的映射。

二、什么是对象的持久化?

狭义的理解,“持久化”仅仅指把对象永久保存到数据库中

广义的理解,“持久化”包括和数据库相关的各种操作:
  • 保存:把对象永久保存到数据库中
  • 更新:更新数据库中对象(记录)的状态。
  • 删除:从数据库中删除一个对象。
  • 查询:根据特定的查询条件,把符合查询条件的一个或多个对象从数据库加载到内存中。
  • 加载:根据特定的OID,把一个对象从数据库加载到内存中。

三、ORM

ORM(Object/Relation Mapping): 对象/关系映射

ORM 主要解决对象-关系的映射

面向对象面向关系
对象表的行
属性表的列

ORM的思想:将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。

ORM 采用元数据来描述对象-关系映射细节, 元数据通常采用 XML 格式, 并且存放在专门的对象-关系映射文件中.

四、创建hibernate-helloworld的步骤

1. 创建 Hibernate 配置文件 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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

	<!-- 配置的数据库链接基本信息 -->
	<session-factory>
		<!-- 数据库方言 -->
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<property name="connection.url">
			jdbc:mysql://localhost:3306/hibernate
		</property>
		<property name="connection.username">root</property>
		<property name="connection.password">root</property>
		<property name="connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<property name="myeclipse.connection.profile">
			com.mysql.jdbc.Driver
		</property>
		<!-- 是否在控制台打印sql -->
		<property name="show_sql">true</property>
		<!-- 格式化 -->
		<property name="format_sql">true</property>
		<!-- 指定自动生成数据表的策略 -->
		<property name="hbm2ddl.auto">update</property>
		<mapping resource="mynodel/News.hbm.xml" />
	</session-factory>

</hibernate-configuration>

2. 创建持久化类(或者创建数据库表)

3. 创建对象-关系映射文件

4. 通过 Hibernate API 编写访问数据库的代码

→ 编写持久化类: POJO + 映射文件或者编写数据库表,反向生成java类

→ 获取 Configuration 对象

Configuration configuration = new Configuration().configure();

→ 获取 ServiceRegistry对象

ServiceRegistry serviceregistry = new ServiceRegistryBuilder()
				.applySettings(configuration.getProperties())
				.buildServiceRegistry();

→ 获取 SessionFactory 对象

SessionFactory sessionfactory = null;
sessionfactory = configuration.buildSessionFactory(serviceregistry);

→ 获取 Session,打开事务

Session session = sessionfactory.openSession();
<pre name="code" class="java">Transaction transaction = session.beginTransaction();

 

→ 用面向对象的方式操作数据库

News news = new News("weixuan","weixuan",new Date(new java.util.Date().getTime()));
session.save(news);
transaction.commit();

 关闭事务,关闭 Session

session.close();
sessionfactory.close();

五、hibernate概述



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值