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("login8226@126.com");

          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();

          }

          }

          posted on 2009-10-21 08:49 subwarhead 閱讀(279) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          主站蜘蛛池模板: 哈尔滨市| 长宁区| 隆德县| 青田县| 霍州市| 眉山市| 忻州市| 旌德县| 湖北省| 淳安县| 墨脱县| 故城县| 灌南县| 集贤县| 金寨县| 五大连池市| 晋州市| 汝阳县| 永定县| 周宁县| 鄂伦春自治旗| 纳雍县| 吉木乃县| 朝阳区| 聂拉木县| 宁都县| 香港| 沙坪坝区| 青阳县| 房产| 平和县| 南华县| 新河县| 东阳市| 阳江市| 金昌市| 辛集市| 忻州市| 喀喇沁旗| 定兴县| 承德市|