日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架

發布時間:2024/1/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?這篇博客是hibernate學習的第一篇,主要簡單介紹hibernate框架,之后簡單說一下hibernate的目錄結構,最后寫一個簡單的hibernate實例。通過這三步來簡單的認識一下hibernate。

?

廢話不多說,步入正題。首先簡單介紹一下hibernate框架,它是一種基于JDBC的主流持久化框架,是一個優秀的orm實現;它對JDBC進行了輕量級的封裝,大大簡化了數據訪問層繁雜的重復代碼;而且它利用了java反射機制來實現程序的透明性;它的本意是從對象出發而非關系數據庫出發,這一點也就是說明它是以面向對象思維解決數據庫的操作問題。

?

以上是從概念上說的hibernate,下面來看一下hibernate目錄結構:


?


這就是解壓出來的hibernate的目錄文件,在這里面doc目錄為文檔,lib目錄為所用的庫文件,src為hibernate源代碼,hibernate3.jar為打包后的字節碼文件。另外一些隨后博客遇到再介紹。

?

這里要說的學習hibernate框架始終和3個比較重要的文件打交道,即hibernate本身的配置文件hibernate.cfg.xml文件,這個文件用來配置hibernate自身屬性,數據庫驅動、數據庫連接和數據庫方言;另外一個是對象關系映射配置文件,如UserInfo.hbm.xml。此文件負責實體對象到關系數據庫映射。最后一個就是我們常見的持久化類了,也就是對象現實中的實體。

?

有了上面的基礎,我們來一步一步的實現一個hibernate實例。

?

1.??????在eclipse中配置hibernate環境:

我們首先建立一個項目,名叫hibernate_first,之后自定義個存放jar包的庫,就取名為UserLibrary;導入相關的包,這些包包括相應數據庫驅動、hibernate目錄下lib文件夾下的jar包,還有hibernate目錄下的hibernate3.jar。



2.??????導入hibernate.cfg.xml,并且配置數據庫連接:

將hibernate目錄下的hibernate.cfg.xml文件導入項目的src目錄下,之后配置數據庫連接信息,我們這個實例選取的是用Mysql作為數據庫,所以我們就要在hibernate.cfg.xml下配置如下信息。

?<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/User</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> </session-factory> </hibernate-configuration>


3.??????建立實體類User.java

import java.util.Date; public class User { private String id; private String name; private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }

?

4.??????提供User.hbm.xml文件,完成實體類的映射(編寫對象關系映射文件,把對象關系映射的邏輯放在此處,這個文件包括表和字段的對象關系,當操作對象時,該文件通過java反射機制產生的方法,會把對象的方法轉為關系的方法)

? <?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> <class name="com.cjq.hibernate.User"> <id name="id"> <generator class="uuid"/> </id> <property name="name"/> <property name="password"/> </class> </hibernate-mapping>

? 這里完成實體類映射的時候數據就要建立了,建立數據庫一定要和配置文件中的相符合。


5.??????將User.hbm.xml文件加入到hibernate.cfg.xml文件中

<mapping resource="com/cjq/hibernate/User.hbm.xml"/>

6.??????編寫運行測試類

? import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateTest { public static void main(String[] args) { //讀取hibernate.cfg.xml文件 Configuration cfg = new Configuration().configure(); //建立SessionFactory SessionFactory factory = cfg.buildSessionFactory(); //取得session Session session = null; try { session = factory.openSession(); //開啟事務 session.beginTransaction(); User user = new User(); user.setName("張三"); user.setPassword("123"); //保存User對象 session.save(user); User u1=(User)session.load(User.class, new String("402881e4361533e901361533eb920001")); System.out.print("從數據庫加載數據的用戶名為"+u1.getPassword()); //提交事務 session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); //回滾事務 session.getTransaction().rollback(); }finally { if (session != null) { if (session.isOpen()) { //關閉session session.close(); } } } } }

?

7.??????建議

最好加入如下配置項,方便觀察hibernate sql的生成:

? ? ? <propertyname="hibernate.show_sql">true</property> <propertyname="hibernate.format_sql">true</property>

最好加入log4j配置文件,將該配置文件拷貝到src下,便于程序的調試。


8.??????結果

?

通過一些概念和目錄還有實例實現,現在對hibernate有所了解,下面的博客要對JDBC和反射機制做一些簡單的介紹,這些知識是hibernate框架的基礎,所以有必要在深入學習hibernate框架之前介紹一下。敬請期待!!!

轉載于:https://www.cnblogs.com/springmvc-hibernate/archive/2012/03/15/2483901.html

總結

以上是生活随笔為你收集整理的深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。