最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Hibernate初體驗(yàn)及簡(jiǎn)單錯(cuò)誤排除代碼詳解

 更新時(shí)間:2018年02月09日 12:04:40   作者:Marksinoberg  
這篇文章主要介紹了Hibernate初體驗(yàn)及簡(jiǎn)單錯(cuò)誤排除代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

Hibernate是什么,有多少好處,想必查找這類(lèi)博文的都知道,所以就不多說(shuō)了。下面是我對(duì)Hibernate簡(jiǎn)單使用的一個(gè)小小的總結(jié)。與君(主要是剛?cè)腴T(mén)的)共勉吧!

創(chuàng)建的順序

  • 創(chuàng)建Hibernate的配置文件
  • 創(chuàng)建持久化的類(lèi)
  • 創(chuàng)建對(duì)象-關(guān)系的映射文件
  • 通過(guò)HibernateAPI編寫(xiě)訪問(wèn)數(shù)據(jù)庫(kù)的代碼

關(guān)于詳細(xì)的步驟

  • 導(dǎo)入Hibernate必須的jar包(hibernate-release-版本號(hào).Final\lib\required)
  • 然后是導(dǎo)入MySQL的jdbc的驅(qū)動(dòng)(mysql-connector-java-版本號(hào)-bin.jar)
  • 導(dǎo)入Junit4的jar包(junit4-版本號(hào).jar)

Eclipse上進(jìn)行環(huán)境的搭建

這里僅僅是將上面提到的那些必須的jar包進(jìn)行相關(guān)的路徑的配置。我這里是將Hibernate基礎(chǔ)項(xiàng)目所需的jar包建立了一個(gè)自己的userlibrary。這樣方便以后自己隨意的導(dǎo)入。但是應(yīng)該注意的是今后那些以來(lái)的文件的文職千萬(wàn)不要隨意的變動(dòng)了,否則可能會(huì)使得eclipse找不到。還有Mysql的JDBC的jar千萬(wàn)不要忘記了。另外Junit作為一個(gè)調(diào)試的使用也是必不可少的。

創(chuàng)建配置文件

步驟一:當(dāng)Hibernate-tools 沒(méi)有自動(dòng)生成配置文件必須的dtd文檔的時(shí)候,我們需要手動(dòng)的進(jìn)行添加。比如

hibernate-release-4.2.4.Final\project\hibernate-core\src\main\resources\org\hibernate\hibernate-mapping-3.0.dtd

在項(xiàng)目的src目錄上點(diǎn)擊鼠標(biāo)右鍵,然后使用hibernate插件,點(diǎn)擊Hibernate Configuration File(cfg.xml)即可。選擇默認(rèn)的就可以了。

步驟二:創(chuàng)建Hibernate的配置文件:

只要是連接過(guò)MySQL數(shù)據(jù)庫(kù),都是知道這些個(gè)字段的含義的,不再過(guò)多的敘述咯。

<property name="connection.username">root</property>
<property name="connection.password">mysql</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>
<property name="connection.dialect">org.hibernate.dialect.MySQLDialect</property>

創(chuàng)建持久化類(lèi)

舉個(gè)簡(jiǎn)單的小例子咯。如下:

import java.util.Date;
/**
   * 學(xué)生類(lèi),設(shè)計(jì)原則要遵循javaBean的設(shè)計(jì)原則
   * 
   * 1、共有的類(lèi) 2、屬性私有 3、屬性使用setter和getter封裝 4、提供龔鷗的不帶參數(shù)的默認(rèn)的構(gòu)造方法
   * 
   * @author Administrator
   *
   */
public class Students {
	private String sname;
	private int sid;
	private Date birthday;
	private String gender;
	private String adress;
	public Students() {
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getAdress() {
		return adress;
	}
	public void setAdress(String adress) {
		this.adress = adress;
	}
	public Students(String sname, int sid, Date birthday, String gender, String adress) {
		this.sname = sname;
		this.sid = sid;
		this.birthday = birthday;
		this.gender = gender;
		this.adress = adress;
	}
	@Override
	    public String toString() {
		return "Students [sname=" + sname + ", sid=" + sid + ", birthday=" + birthday + ", gender=" + gender
		          + ", adress=" + adress + "]";
	}
}

創(chuàng)建對(duì)象關(guān)系映射文件

同樣使用插件幫助我們生成。在src目錄下點(diǎn)擊右鍵,new--others--hibernate,選擇Hibernate XML Mapping file(hbm.xml)文件,找到我們要進(jìn)行映射的學(xué)生類(lèi),然后選擇默認(rèn)的即可。

然后在剛才創(chuàng)建的hibernate.cfg.xml文件中添加一個(gè)mapping標(biāo)簽即可。如下

 <mapping resource="Students.hbm.xml" />

創(chuàng)建自己的測(cè)試用的數(shù)據(jù)庫(kù)

這里我使用Navacat軟件新建了一個(gè)字符集為UTF-8的數(shù)據(jù)庫(kù)。名稱(chēng)為hibernate.

編寫(xiě)的第一個(gè)Hibernate的測(cè)試的小例子

- 使用Junit進(jìn)行測(cè)試:
- @Test注解:表明這是一個(gè)測(cè)試方法,一般為void的無(wú)參的throws異常的方法。
- @Before注解:表明這是一個(gè)初始化方法,用于初始化一些信息。
- @After注解:表明這是一個(gè)釋放資源的方法,用于收尾的工作。

點(diǎn)擊項(xiàng)目名,右鍵選擇創(chuàng)建一個(gè)source folder.作為我們的測(cè)試所用。我的為test。然后新建一個(gè)測(cè)試類(lèi)就可以了。這里我們需要測(cè)試的是我們的Students類(lèi),所以創(chuàng)建了一個(gè)StudentsTest就行。

編寫(xiě)最后的內(nèi)容,使用HibernateAPI來(lái)操作數(shù)據(jù)庫(kù)

可見(jiàn)為如下代碼:

import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class StudentsTest {
	private SessionFactory sessionFactory;
	private Session session;
	private Transaction transaction;
	@Before
	    public void init() {
		// 創(chuàng)建配置對(duì)象
		Configuration config = new Configuration().configure();
		// 創(chuàng)建服務(wù)注冊(cè)對(duì)象
		ServiceRegistry serviceRegister = new ServiceRegistryBuilder().applySettings(config.getProperties())
		          .buildServiceRegistry();
		// 創(chuàng)建會(huì)化工廠對(duì)象
		sessionFactory = config.buildSessionFactory(serviceRegister);
		// 會(huì)話對(duì)象
		session = sessionFactory.openSession();
		// 開(kāi)啟事務(wù)
		transaction = session.beginTransaction();
	}
	@Test
	    public void testSaveStudents() {
		Students s = new Students(1, "張三", "男", new Date(), "DLUT");
		// 保存對(duì)象進(jìn)入數(shù)據(jù)庫(kù)
		session.save(s);
	}
	@After
	    public void destory() {
		// 先提交事務(wù)
		transaction.commit();
		session.close();
		sessionFactory.close();
	}
}

檢驗(yàn)一下,實(shí)施的效果吧

我最后在測(cè)試方法上點(diǎn)擊了一下,發(fā)現(xiàn)報(bào)錯(cuò)了。是org.hibernate.MappingException: Unknown Entity:Students。
然后我就看了看hibernate.cfg.xml文件,發(fā)現(xiàn)數(shù)據(jù)庫(kù)的一切都是正確的啊。也沒(méi)錯(cuò)。
就想不明白了,然后查了查網(wǎng)上的相似的錯(cuò)誤。也沒(méi)有發(fā)現(xiàn)正確的解決辦法,最后靈光一閃,肯定是映射文件出錯(cuò)了。那么到底是哪個(gè)呢,就一個(gè)一個(gè)的排查吧。然后我就找到了錯(cuò)誤的根源了,不是Student.hbm.xml的錯(cuò)誤,而是hibernate.cfg.xml中忘記了添加mapping的標(biāo)簽。哈哈。這次,又運(yùn)行了一下,成功了。

效果圖如下:

總結(jié)

本文適合剛?cè)腴T(mén)的Hibernate童鞋,所以并沒(méi)有一些很復(fù)雜的配置啊,和其他額外的處理啊什么的。就是為了簡(jiǎn)單。

這里面使用到了Hibernate-tools插件,幫助我們干了不少活。省事也省心了。個(gè)人建議安裝JBoss的這款,包含了不少的東西呢。

以上就是本文關(guān)于Hibernate初體驗(yàn)及簡(jiǎn)單錯(cuò)誤排除代碼詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 關(guān)于Hystrix的監(jiān)控及可視化面板

    關(guān)于Hystrix的監(jiān)控及可視化面板

    這篇文章主要介紹了關(guān)于Hystrix的監(jiān)控及可視化面板,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn)

    Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn)

    這篇文章主要介紹了Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SpringMVC圖片文件跨服務(wù)器上傳

    SpringMVC圖片文件跨服務(wù)器上傳

    這篇文章主要為大家詳細(xì)介紹了SpringMVC圖片文件跨服務(wù)器上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • java的各種類(lèi)型轉(zhuǎn)換全部匯總(推薦)

    java的各種類(lèi)型轉(zhuǎn)換全部匯總(推薦)

    下面小編就為大家?guī)?lái)一篇java的各種類(lèi)型轉(zhuǎn)換全部匯總(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • 如何使用Java?8中DateTimeFormatter類(lèi)型轉(zhuǎn)換日期格式詳解

    如何使用Java?8中DateTimeFormatter類(lèi)型轉(zhuǎn)換日期格式詳解

    這篇文章主要介紹了如何使用Java?8中DateTimeFormatter類(lèi)型轉(zhuǎn)換日期格式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • IDEA設(shè)置maven修改settings.xml配置文件無(wú)法加載倉(cāng)庫(kù)的解決方案

    IDEA設(shè)置maven修改settings.xml配置文件無(wú)法加載倉(cāng)庫(kù)的解決方案

    這篇文章主要介紹了IDEA設(shè)置maven修改settings.xml配置文件無(wú)法加載倉(cāng)庫(kù)的解決方案,幫助大家更好的利用IDEA進(jìn)行JAVA的開(kāi)發(fā)學(xué)習(xí),感興趣的朋友可以了解下
    2021-01-01
  • springCloud中的Sidecar多語(yǔ)言支持詳解

    springCloud中的Sidecar多語(yǔ)言支持詳解

    這篇文章主要介紹了springCloud中的Sidecar多語(yǔ)言支持詳解,Sidecar是將一組緊密結(jié)合的任務(wù)與主應(yīng)用程序共同放在一臺(tái)主機(jī)Host中,但會(huì)將它們部署在各自的進(jìn)程或容器中,需要的朋友可以參考下
    2024-01-01
  • Mybatis延遲加載和緩存深入講解

    Mybatis延遲加載和緩存深入講解

    這篇文章主要給大家介紹了關(guān)于Mybatis延遲加載和緩存的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • cookie+mybatis+servlet實(shí)現(xiàn)免登錄時(shí)長(zhǎng)兩天半的整體流程

    cookie+mybatis+servlet實(shí)現(xiàn)免登錄時(shí)長(zhǎng)兩天半的整體流程

    這篇文章主要介紹了cookie+mybatis+servlet實(shí)現(xiàn)免登錄時(shí)長(zhǎng)兩天半,主要用到的技術(shù)有session、cookie、轉(zhuǎn)發(fā)、重定向、filter、和servlet,最重要的還是具體的來(lái)運(yùn)用它們?cè)谇岸隧?yè)面真正的搭建出一個(gè)應(yīng)用,通過(guò)這個(gè)練習(xí),對(duì)我們所學(xué)的web知識(shí)做一個(gè)整合,需要的朋友可以參考下
    2022-10-10
  • IntelliJ IDEA使用教程從入門(mén)到上癮(2019圖文版)

    IntelliJ IDEA使用教程從入門(mén)到上癮(2019圖文版)

    這篇文章主要介紹了IntelliJ IDEA使用教程從入門(mén)到上癮(2019圖文版),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論

双城市| 云霄县| 海盐县| 松潘县| 永仁县| 陇西县| 邵东县| 晋中市| 黔西| 通海县| 丹棱县| 丹江口市| 文安县| 武隆县| 敦化市| 馆陶县| 贵港市| 政和县| 随州市| 林口县| 科技| 白河县| 东方市| 鹤峰县| 察雅县| 吉林省| 嘉黎县| 陇西县| 和硕县| 昌江| 栾川县| 龙里县| 凤冈县| 贵州省| 德江县| 广元市| 大余县| 宾阳县| 阜新| 波密县| 宜黄县|