基于hibernate框架在eclipse下的配置方法(必看篇)
一、ORM
O:object 對(duì)象
R:Realtion 關(guān)系(關(guān)系型數(shù)據(jù)庫(kù))
M:Mapping 映射
ORM:對(duì)象關(guān)系型映射
目前流行的編程語(yǔ)言,如Java、C# ,它們都是面向?qū)ο蟮木幊陶Z(yǔ)言,而目前主流的數(shù)據(jù)庫(kù)產(chǎn)品例如Oracle、DB2等,依然是關(guān)系型數(shù)據(jù)庫(kù)。編程語(yǔ)言和底層數(shù)據(jù)庫(kù)發(fā)展的不協(xié)調(diào)(阻抗不匹配,例如數(shù)據(jù)庫(kù)中無(wú)法直接實(shí)現(xiàn)存儲(chǔ)繼承、多態(tài)、封裝等特征和行為),催生出了ORM框架。ORM框架可以作為面向?qū)ο笳Z(yǔ)言和關(guān)系型數(shù)據(jù)庫(kù)之間的橋梁。
二、Hibernate
Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。
三、hibernate框架在eclipse下的配置方法,這里我們以hibernate3.2為例,介紹一下hibernate3.2在eclipse里的配置方法:
(1)打開(kāi)eclipse,設(shè)置其工作空間,點(diǎn)擊OK,進(jìn)入eclipse主界面。
(2)首先我們創(chuàng)建一個(gè)java項(xiàng)目,F(xiàn)ile->new->java Project->創(chuàng)建項(xiàng)目名稱(chēng),這里我們以ones為例。
(3)導(dǎo)入我們所需要的JAR包,這里我們需要導(dǎo)入3類(lèi)jar包,首先是hibernate3.jar,是使用hibernate時(shí)必備的庫(kù)。lib文件中的所有文件。數(shù)據(jù)庫(kù)連接jar包,這里以mysql數(shù)據(jù)庫(kù)文件,我們需要導(dǎo)入的jar包是mysql.jar。這里我們創(chuàng)建一個(gè)用戶自己的類(lèi)庫(kù),可以將我們的jar包直接導(dǎo)入user library中,當(dāng)我們?cè)俳⑵渌捻?xiàng)目時(shí),就避免了再重新一個(gè)一個(gè)的引入jar包。
創(chuàng)建步驟如圖所示:
(4)點(diǎn)擊Add External JARs... 以此導(dǎo)入上述jar包,點(diǎn)擊OK,finish完成操作。此時(shí),項(xiàng)目名下可看到名為first的用戶自定義類(lèi)庫(kù)。
(5)我們?cè)趕rc文件目錄下導(dǎo)入hibernate.cfg.xml文件。這里我們所需要更改的內(nèi)容為第7行,localhost/ones(ones更改為自己的數(shù)據(jù)庫(kù)名)
第9行為mysql用戶名,第10行為mysql數(shù)據(jù)庫(kù)的密碼。第14行代碼刪掉。
<!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.url">jdbc:mysql://localhost/ones</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">88888888</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> <mapping resource="com/bjsxt/hibernate/User.hbm.xml"/> </session-factory> </hibernate-configuration>
(6)在src下建立用戶類(lèi)以及映射文件。Src右鍵->New->Class->選擇類(lèi)名,這里我們創(chuàng)建名為User的類(lèi)。
(7)編寫(xiě)用戶類(lèi)代碼(這里eclipse支持批量自動(dòng)寫(xiě)入set/get方法)點(diǎn)擊Source->Generate Ftters and Setters 選擇全部,導(dǎo)入。User類(lèi)已經(jīng)編寫(xiě)完成,接下來(lái)我們編寫(xiě)映射文件。
package ones; 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; } }
(8)選擇User.hbm.xml文件,拷入Src文件夾下的包中,文件位置在hiberate\rg\org\hiberate\auction中,這里我們所要修改的代碼是第6行,org.hibernate.auction改為自己項(xiàng)目的包名。第八行代碼,可以只保留<Class name="User">,其余部分可以刪掉。第九行代碼刪掉。將第12行的native刪掉,native是配置整形數(shù)據(jù)的,我們之前設(shè)置的id為字符型,所以這里我們改為uuid,15行至50行,刪掉。在<class>中編寫(xiě)屬性,屬性值等于User.java中定義的屬性(不包括id)。
<?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.hibernate.auction"> <class name="User" table="AuctionUser" lazy="true"> <comment>Users may bid for or sell auction items.</comment> <id name="id"> <generator class="native"/> </id> <natural-id mutable="true"> <property name="userName" length="10"/> </natural-id> <property name="password" not-null="true" length="15" column="`password`"/> <property name="email"/> <component name="name"> <property name="firstName" length="50" not-null="true"/> <property name="initial" column="`initial`"/> <property name="lastName" length="50" not-null="true"/> </component> <bag name="bids" inverse="true" cascade="save-update,lock"> <key column="bidder"/> <one-to-many class="Bid"/> </bag> <bag name="auctions" inverse="true" cascade="save-update,lock"> <key column="seller"/> <one-to-many class="AuctionItem"/> </bag> </class> </hibernate-mapping>
(9)編寫(xiě)后的User.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="ones"> <class name="User" > <id name="id"> <generator class="uuid"/> </id> <property name="name"></property> <property name="password"></property> </class> </hibernate-mapping>
(10)編寫(xiě)導(dǎo)入類(lèi),建立名為ExportDB的類(lèi),直接產(chǎn)生它的主方法
package ones; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class ExportDB { public static void main(String[] args) { //讀取文件的配置 Configuration cfg = new Configuration().configure(); SchemaExport export = new SchemaExport(cfg); export.create(ture, ture); } }
(11)修改hibernate.cfg.xml中的第14行代碼,將路徑改為ones(包名)/User.hbm.xml
(12)在mysql數(shù)據(jù)庫(kù) 中建立測(cè)試表,運(yùn)行eclipse中的ExportDB文件,右鍵->Run As->java Application
以上這篇基于hibernate框架在eclipse下的配置方法(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springCloud集成nacos啟動(dòng)時(shí)報(bào)錯(cuò)原因排查
這篇文章主要介紹了springCloud集成nacos啟動(dòng)時(shí)報(bào)錯(cuò)原因排查,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04關(guān)于@Autowired的使用及注意事項(xiàng)
這篇文章主要介紹了關(guān)于@Autowired的使用及注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05SpringBoot去除內(nèi)嵌tomcat的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot去除內(nèi)嵌tomcat的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09springboot 多模塊將dao(mybatis)項(xiàng)目拆分出去
這篇文章主要介紹了springboot 多模塊將dao(mybatis)項(xiàng)目拆分出去,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05java讀取文件顯示進(jìn)度條的實(shí)現(xiàn)方法
當(dāng)讀取一個(gè)大文件時(shí),一時(shí)半會(huì)兒無(wú)法看到讀取結(jié)果,就需要顯示一個(gè)進(jìn)度條,是程序員明白已經(jīng)讀了多少文件,可以估算讀取還需要多少時(shí)間,下面的代碼可以實(shí)現(xiàn)這個(gè)功能2014-01-01詳解AOP與Filter攔截請(qǐng)求打印日志實(shí)用例子
這篇文章主要介紹了詳解AOP與Filter攔截請(qǐng)求打印日志實(shí)用例子,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09Java Web導(dǎo)出等比例圖片到Excel的實(shí)現(xiàn)過(guò)程
我們使用Java導(dǎo)出圖片到Excel,打開(kāi)成功導(dǎo)出的Excel一看,商品對(duì)應(yīng)的圖片都很規(guī)矩的按照我的設(shè)置鋪滿了整個(gè)單元格,但是,商品圖片卻都變形了,這樣肯定是不行的,于是第一反應(yīng)就是將圖片等比例導(dǎo)出,所以本文本給大家介紹了如何使用Java Web導(dǎo)出等比例圖片到Excel2023-11-11