hibernate-01框架的搭建
1.hibernate簡介
框架:提高開發效率,即封裝好了一些功能導入jar包后調用即可,框架也可以理解成是一個半成品的項目
hibernate框架:在進行web開發時我們采用三層架構(web、service、dao),hibernate就是dao層框架
優點:操作數據庫時采用面向對象的方式完成,不需要書寫sql語句
hibernate是一款orm框架:orm對象關系映射(object relationg mapping)使用配置或其他手段將對象的信息與數據庫中的表進行對應從而完成操作,orm分四級:hibernate(4級:全自動),mybatis(2級:半自動),dbutils(1級:手動)
2.hibernate框架搭建
1.導包
必須的jar包:hibernate-release-5.0.7.Final\lib\required\*,數據庫驅動包
2.建庫建表,javabean實體
javabean實體:屬性名必須與數據庫表中列名一一對應,
3.書寫orm元數據(對象與表的映射配置)
a.導入dtd約束:configuration(配置文件約束),mapping(orm映射文件配置)導入dtd約束后書寫兩種配置文件可以有提示
Customer.hbm.xml(文件名:xxx.hbm.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.imwj.domain">
<class name="Customer" table="cst_customer">
<id name="cust_id" column="cust_id">
<!-- generator:主鍵生成策略 -->
<generator class="native"></generator>
</id>
<property name="cust_name" column="cust_name"></property>
<property name="cust_user_id" column="cust_user_id"></property>
<property name="cust_source" column="cust_source"></property>
<property name="cust_industry" column="cust_industry"></property>
<property name="cust_level" column="cust_level"></property>
<property name="cust_linkman" column="cust_linkman"></property>
<property name="cust_phone" column="cust_phone"></property>
<property name="cust_mobile" column="cust_mobile"></property>
</class>
</hibernate-mapping>
4.書寫主配置文件
hibernate.cfg.xml(文件名必須是hibernate.cfg.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/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:///web35_hibernate</property>
<!-- 連接名 -->
<property name="hibernate.connection.username">root</property>
<!-- 連接密碼 -->
<property name="hibernate.connection.password">123456</property>
<!-- 選擇數據庫引擎:默認通用的(最短) -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 在控制臺顯示sql語句 -->
<property name="hibernate.show_sql">true</property>
<!-- 按格式顯示sql語句 -->
<property name="hibernate.format_sql">true</property>
<!-- 自動創建表:按何種方式 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 映射表的路徑 -->
<mapping resource="com/imwj/domain/Customer.hbm.xml" />
</session-factory>
</hibernate-configuration>
5.使用(測試)
public void testHelloHibernate(){
Configuration conf = new Configuration().configure();//空參加載方法,加載src下的hibernate.cfg.xml文件(指定名稱)
SessionFactory sessionFactory = conf.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
//-----------------------------開啟事務
Customer customer = new Customer();
customer.setCust_name("google公司2");
session.save(customer);
//-------------------------提交事務tx.commit();,回滾事務:tx.rollback();
tx.commit();
//釋放資源
session.close();
sessionFactory.close();
}
3.配置文件詳解
3.1)orm映射文件:配置表與實體對象的關系
根元素<hibernate-mapping>:package屬性:填寫一個包名.在元素內部凡是需要書寫完整類名的屬性,可以直接寫簡答類名了
class元素<class>:name: 完整類名,table:數據庫表名
id元素<id>:id元素:配置主鍵映射的屬性
name: 填寫主鍵對應屬性名
column(可選): 填寫表中的主鍵列名.默認值:列名會默認使用屬性名
type(可選):填寫列(屬性)的類型.hibernate會自動檢測實體的屬性類型.
每個類型有三種填法: java類型|hibernate類型|數據庫類型
not-null(可選):配置該屬性(列)是否不能為空. 默認值:false
length(可選):配置數據庫中列的長度. 默認值:使用數據庫類型的最大長度,id下的<generator>:主鍵生成策略一般為native
property元素<property>:與id元素相同,少了generator標簽
3.2)主配置文件:連接數據庫等
必選配置:<!-- 數據庫驅動 -->、<!-- 數據庫地址和名稱 -->、<!-- 連接名 -->、<!-- 連接密碼 -->、<!-- 選擇數據庫引擎(方言):默認通用的(最短) -->
可選配置:<!-- 在控制臺顯示sql語句 -->、<!-- 按格式顯示sql語句 -->、<!-- 自動創建表:按何種方式 -->
orm元數據引入配置:映射表的路徑 <mapping resource="com/imwj/domain/Customer.hbm.xml" />
4.hibernateAPI
Configuration:空參加載方法,加載src下的hibernate.cfg.xml文件(指定名稱)
SessionFactory:*獲得sessionFactory工廠(盡可能保證一個項目只有一個工廠),用于創建session對象
* 注意:1.sessionfactory 負責保存和使用所有配置信息.消耗內存資源非常大.
* 2.sessionFactory屬于線程安全的對象
Session:session操作(hibernate的操作都是基于session對象)
Transaction:獲得Transaction事務控制
總結:
1.什么是框架
提高我們的開發效率.可以理解成是一個半成品項目.
2.hibernate框架
dao層框架
操作數據庫.
以面向對象的方式操作數據庫.
orm 思想. 對象關系映射. 通過映射文件配置對象與數據庫中表的關系.
3.hibernate框架搭建
1> 導包
required+驅動包
2> 準備實體類 以及 orm元數據
3> 創建主配置文件
4>書寫代碼測試
4.配置文件詳解
orm元數據(xxx.hbm.xml)
<hibernate-mapping package="">
<class name table>
<id name >
<generator class="">
</id>
<property name="" />
hibernate.cfg.xml
必選配置
4+1 方言
可選配置
顯示sql
格式化sql
自動生成表
|- update
orm元數據引入
<mapping resource="" />
5.api詳解
Configuration 讀取配置
sessionFactory 創建session
Session 獲得事務操作對象,以及數據增刪改查
Transaction 控制事務
智能推薦
eclipse搭建Hibernate框架
在eclipse中搭建Hibernate比較簡單,分為以下幾步: 1.安裝Hibernatetools插件 安裝Hibernatetools插件有兩種方式,一種是離線安裝,一種是在線安裝。因為離線安裝存在的bug比較多,所以并不推薦,我使用的是在線安裝(有網) Help->Eclipse Marketplace… 找到插件 如圖,博主我是已經安裝了的,按鈕已經顯示為Instal...
Hibernate框架 環境搭建
版本信息: Hibernate:5.8.0 MySQL:8.0.21 項目結構: 步驟: 1.導入相關jar包 解壓縮hibernate壓縮包之后,相關jar包目錄如下,將目錄下的所有jar包導入到項目中(導入的位置不固定,可以自己創建一個文件夾用來存放導入的jar包) 除此之外還需要導入的jar包 1). 連接MySQL的jar包 2). javaee-api-7.0.jar 當導入的jar包顯...
Hibernate框架學習筆記01
1:hibernate是什么 (1)框架是什么 1.框架是用來提高開發效率的 2.封裝好了一些功能.我們需要使用這些功能時,調用即可.不需要再手動實現. 3.所以框架可以理解成是一個半成品的項目.只要懂得如何駕馭這些功能即可. (2)hibernate框架是什么 (3)hibernate的好處 操作數據庫的時候,可以以面向對象的方式來完成.不需要書寫SQL語句 (4)hibernate是一款orm...
struts2-01框架的搭建
1.struts2框架簡介 處理訪問服務器的請求,替代了servlet的存在 優點:自動封裝參數、參數校驗、結果的處理(轉發|重定向)、國際化、顯示等待頁面、表單防止重復提交 struts2的思想:基于攔截器Filter的框架,實現了aop思想(切面編程) struts2與struts1沒有任何聯系,struts2的前身是webwork框架 2.struts2框架的搭建 1>導...
Hibernate框架-Hinernate的概述及環境搭建
Hibernate框架-Hinernate的概述及環境搭建 簡介:整理了一下學習的知識,加深記憶。 Hibernate的概述 Hibernate是一個開源的ORM框架,它對JDBC進行了輕量級的對象封裝,使得Java開發人員可以使用面向對象的編程思想來操作數據庫。 Hibernate框架是Java持久層框架之一,由于它具有簡單易學、靈活性強、擴展性強的特點,能夠大大地簡化程序的代碼量,提高工作效率...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...