01_Hibernate起源
一、框架的概念
利用框架可以更好更快的地開發(fā)應(yīng)用系統(tǒng)
框架是應(yīng)用程序的半成品
提供可重用的公共模塊
通過配置開發(fā)適應(yīng)不同的系統(tǒng)(應(yīng)用配置文件)
二、持久層的概念
|
|
三、ORM框架的概念
1 . ORM: Object RelationDatabase Mapping 對象關(guān)系型數(shù)據(jù)庫映射
|
Hibernate要做的就是將數(shù)據(jù)庫中的表映射成Java中的POJO類,這樣就可以像操作類一樣來操作數(shù)據(jù)庫對象了 常見的ORM 框架: Hibernate iBATIS…. |
四、Hibernate
Hibernate的產(chǎn)品
|
|
五、Hibernate的下載
www.hibernate.org www.slf4j.org :slf4j-api的下載地址
Hibernate 主要的依賴類庫在Hibernate下載的解壓包中會有,但是缺少slf4j-api包可以自行下載
|
Hibernate需要8個jar文件 注意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) 編輯 收藏