01_Hibernate起源

           

          一、框架的概念

          利用框架可以更好更快的地開發(fā)應(yīng)用系統(tǒng)

          框架是應(yīng)用程序的半成品

          提供可重用的公共模塊

          通過配置開發(fā)適應(yīng)不同的系統(tǒng)(應(yīng)用配置文件)

          二、持久層的概念

          表現(xiàn)層

          Jsp .Html 頁面用與客戶交互

          業(yè)務(wù)邏輯層

          核心的業(yè)務(wù)運(yùn)算邏輯

          持久層

          ORM,Jdbc 用于操作數(shù)據(jù)

          數(shù)據(jù)

          保存數(shù)據(jù)

          三、ORM框架的概念

          1 . ORM:    Object RelationDatabase Mapping 對象關(guān)系型數(shù)據(jù)庫映射

          對象

          關(guān)系型數(shù)據(jù)庫

          對象

          記錄

          類屬性

          表的字段

          1:n/n:1

          外鍵

          Hibernate要做的就是將數(shù)據(jù)庫中的表映射成Java中的POJO類,這樣就可以像操作類一樣來操作數(shù)據(jù)庫對象了

          常見的ORM 框架:

          Hibernate 

          iBATIS….

          四、Hibernate

          Hibernate的產(chǎn)品

          Hibernate

          功用

           Shards

          用于數(shù)據(jù)庫分區(qū),當(dāng)有海量數(shù)據(jù)時,將應(yīng)用分配到不同的數(shù)據(jù)庫上,減輕數(shù)據(jù)庫壓力

          Search

          實(shí)現(xiàn)全文搜索

          Annotations

          幫助使用注解完成類與表的映射

          EntityManager

          為了兼容JPA而提供的組件Annotations+EntityManager+Core針對Jpa的一套實(shí)現(xiàn)

          Validator

          數(shù)據(jù)校驗

          Core

          底層

          五、Hibernate的下載

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

          Hibernate 主要的依賴類庫Hibernate下載的解壓包中會有,但是缺少slf4j-api可以自行下載

          Hibernate需要8jar文件 注意hibernate3.jar需要加上這是核心類庫

          六、開發(fā)Hibernate的第一個實(shí)例

          項目文件列表

          具體步驟:

          1.新建一個POJO Guestbook.java

              注意該類中的字段屬性要和數(shù)據(jù)庫中對應(yīng)的guestbook表中的字段對應(yīng)

          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>

            <!--數(shù)據(jù)庫連接設(shè)置-->

            <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數(shù)據(jù)庫連接池-->

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

            <!--數(shù)據(jù)庫方言-->

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

            <!--可以將session綁定到特定的事務(wù)上-->

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

            <!--輸出數(shù)據(jù)庫操作的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());

          //負(fù)責(zé)加載配置文件

          Configuration config = new Configuration();

          //完成配置的讀取

          config.configure();

          //操作對應(yīng)的數(shù)據(jù)庫

          SessionFactory sessionFactory = config.buildSessionFactory();

          //JDBC中的Connection對象類似

          Session session = sessionFactory.getCurrentSession();

          //事務(wù)啟動事務(wù)

          Transaction tx = session.beginTransaction();

          //保存修改

          session.save(gBook);

          //提交事務(wù)

          tx.commit();

          }

          }

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


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


          網(wǎng)站導(dǎo)航:
           
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          主站蜘蛛池模板: 家居| 眉山市| 上栗县| 柯坪县| 滨州市| 南阳市| 永济市| 宾阳县| 陇南市| 襄城县| 巩留县| 阳朔县| 崇信县| 铁力市| 革吉县| 留坝县| 平乡县| 商河县| 新昌县| 连城县| 抚松县| 辉县市| 潮安县| 麻城市| 通化市| 奈曼旗| 陇南市| 丹江口市| 兴义市| 曲阜市| 彭水| 浦北县| 商都县| 台江县| 衡水市| 湘潭县| 中江县| 扎囊县| 塘沽区| 临猗县| 沾化县|