01_Hibernate起源

01_Hibernate起源

 

一、框架的概念

利用框架可以更好更快的地开发应用系统

框架是应用程序的半成品

提供可重用的公共模块

通过配置开发适应不同的系统(应用配置文件)

二、持久层的概念

表现层

Jsp .Html 页面用与客户交互

业务逻辑层

核心的业务运算逻辑

持久层

ORM,Jdbc 用于操作数据

数据

保存数据

三、ORM框架的概念

1 . ORM:    Object RelationDatabase Mapping 对象关系型数据库映射

对象

关系型数据库

对象

记录

类属性

表的字段

1:n/n:1

外键

Hibernate要做的就是将数据库中的表映射成Java中的POJO类,这样就可以像操作类一样来操作数据库对象了

常见的ORM 框架:

Hibernate 

iBATIS….

四、Hibernate

Hibernate的产品

Hibernate

功用

 Shards

用于数据库分区,当有海量数据时,将应用分配到不同的数据库上,减轻数据库压力

Search

实现全文搜索

Annotations

帮助使用注解完成类与表的映射

EntityManager

为了兼容JPA而提供的组件Annotations+EntityManager+Core针对Jpa的一套实现

Validator

数据校验

Core

底层

五、Hibernate的下载

www.hibernate.org     www.slf4j.org :slf4j-api的下载地址

Hibernate 主要的依赖类库Hibernate下载的解压包中会有,但是缺少slf4j-api可以自行下载

Hibernate需要8jar文件 注意hibernate3.jar需要加上这是核心类库

六、开发Hibernate的第一个实例

项目文件列表

具体步骤:

1.新建一个POJO Guestbook.java

    注意该类中的字段属性要和数据库中对应的guestbook表中的字段对应

2.Hibernate配置文件

Hibernate.cfg.xml

该文件可以在Hibernate解压包中的project/tutorials中找到模版   可以通过搜索*.xml文件快速定位

将该文件放在src目录下

hibernate.cfg.xml

    <?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>

    <session-factory>

    <!--数据库连接设置-->

    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

    <property name="connection.url">jdbc:oracle:thin:@localhost:1521:sky</property>

    <property name="connection.username">scott</property>

    <property name="connection.password">tiger</property>

    <!--JDBC数据库连接池-->

    <property name="connection.pool_size">2</property>

    <!--数据库方言-->

    <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>

    <!--可以将session绑定到特定的事务上-->

    <property name="current_session_context_class">thread</property>

    <!--输出数据库操作的SQL语句-->

    <property name="show_sql">true</property>

    <property name="format_sql">true</property>

    <!-- 指向表和类的映射文件 -->

    <mapping resource="org/cgz/hibernate/GuestBook.hbm.xml" />

    </session-factory>

    </hibernate-configuration>

GuestBook.hbm.xml

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="org.cgz.hibernate">

<class name="GuestBook" table="GuestBook" lazy="true">

<id name="id">

<generator class="sequence">

<param name="sequence">gb_seq</param>

</generator>

</id>

<property name="name" column="" type="java.lang.String" ></property>

<property name="email" column="" type="java.lang.String" ></property>

<property name="phone" column="" type="java.lang.String" ></property>

<property name="title" column="" type="java.lang.String" ></property>

<property name="content" column="" type="java.lang.String" ></property>

<property name="createdTime" column="created_time" type="java.util.Date" ></property>

</class>

</hibernate-mapping>

测试程序

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

publicclass HibernateTest {

publicstaticvoid main(String[] args) {

//生成JavaBean对象

GuestBook gBook = new GuestBook();

//赋值

gBook.setName("Jack");

gBook.setPhone("15855770982");

gBook.setEmail("[email protected]");

gBook.setTitle("我的第一个Hibernate程序");

gBook.setContent("我很Happy");

gBook.setCreatedTime(new Date());

//负责加载配置文件

Configuration config = new Configuration();

//完成配置的读取

config.configure();

//操作对应的数据库

SessionFactory sessionFactory = config.buildSessionFactory();

//JDBC中的Connection对象类似

Session session = sessionFactory.getCurrentSession();

//事务启动事务

Transaction tx = session.beginTransaction();

//保存修改

session.save(gBook);

//提交事务

tx.commit();

}

}

你可能感兴趣的:(01_Hibernate起源)