首页 > 代码库 > Hibernate入门
Hibernate入门
先来了解两个概念
一、什么是持久层?
持久是相对于瞬时来说的,简单说就是把数据保存到数据库中,然后持久保存到存储设备上,不像放在内存中断电就消失。企业应用中数据很重要(各种订单数据、客户数据、库存数据之类的),比应用程序本身更重要,所以需要把数据持久化。
二、什么是对象关系映射(ORM)
ORM是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。
Hibernate
一、什么是Hibernate?
Hibernate是一个基于Java的开放源代码的持久化中间件,是持久层的一种实现方式,它对JDBC做了轻量级封装,不仅提供ORM映射服务,还提供数据查询和数据缓存功能,Java人员可以方便地通过Hibernate API来操纵数据库。
二、Hibernate优点
- l 提高生产力。不用写大量的sql语句。
- l 更加面向对象了,重点考虑对象,不用考虑sql。
- l 移植性,用hibernate写的代码不需要改变,如改变数据库,只要修改dialet(适配器就可以)。
- l 透明持久化对象。(News对象不继承任何框架。重用性更好)
三、Hibernate体系结构和开发步骤
四、Hibernate第一个程序
官网地址: www.hibernate.org
(不同的Hibernate版本使用方法会有稍许差异)
3.6.0版本百度网盘分享:http://pan.baidu.com/s/1i4I1mcd
1 新建Java工程,并添加如下jar包:
- {hibernate-_home}/hibernate3.jar
- {hibernate-_home}/lib/required/*.jar
- {hibernate-_home}/lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar (如果不加此包,会有异常:java.lang.ClassNotFoundException: javax.persistence.EntityListeners)
- 数据库对应的JDBC驱动(例如oarcle数据库对应ojdbc14.jar)
- 还可以加入日志相关的jar包(不加也可以):因已经添加了{hibernate-_home}/lib/required/slf4j-api-1.6.1.jar只需要下载slf4j-1.6.1.zip,添加其中的slf4j-nop-1.6.1.jar
2 创建持久化对象
package com.silvan.pojo;
/**
* 新闻
*/
public class News {
private Integer id;
private String newsTitle;
private String newsContent;
get/set……
}
3 创建对象关系映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="com.silvan.pojo.News" table="t_news">
<id name="id" column="id">
<generator class="native"><!-- id的生成策略:从序列中产生 -->
<param name="sequence">news_sequence</param>
</generator>
</id>
<property name="newsTitle" column="news_title"></property>
<property name="newsContent" column="news_content"></property>
</class>
</hibernate-mapping>
4 创建Hibernate配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
<!-- 一个sessionfactory配置一个数据库 -->
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.username">zhouyq</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:zhou</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">udpate</property>
<!-- 加载映射文件 -->
<mapping resource="com/silvan/pojo/News.hbm.xml"/>
</session-factory>
</hibernate-configuration>
5 通过Hibernate API访问数据库
未完待续
Hibernate入门