1. 程式人生 > >Hibernate第一次配置與使用(圖文)

Hibernate第一次配置與使用(圖文)

實驗環境:

MyEclipse 7 Tomcat 5 Hibernate 4.3.10 MySQL

Hibernate庫匯入

建立工程之後,就該匯入Hibernate庫啦,因為我用的是MyEclipse 7,如果是按照如下工程自動匯入方式,就只有Hibernate 3版本可以使用。

工程自動新增



手動新增

因為我想用Hibernate4,所以就要自己手動新增啦。 需要新增的庫都下圖所示,在required目錄中 新增庫的方式是:右鍵點選工程,之後選擇Build Path->Configure Build Path->Libraries->Add External Jars

MySQL 庫匯入

首先要去網上下一個mysql-connector-java,裡邊的mysql-connector-java-5.1.7-bin.jar就是我們要新增的jar啦。

News.java類的編寫

設定如下4個屬性,並生成相應的get和set方法
package hibernate;

import java.sql.Date;

public class News {
	private int id;
	private String title;
	private String author;
	private Date date;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public News(String author, String title, Date date) {
		super();
		this.author = author;
		this.date = date;
		this.title = title;
	}
	public News(){
		
	}
	public String toString(){
		return "News [id = " + id + ", title = " + title + "author = " + author + "date = "+ date + "]"; 
	}
	public Date getDate() {
		return date;
	}
	public void setDate(Date date) {
		this.date = date;
	}
}

Hibernate.cfg.xml配置資料庫

在src目錄下新建一個型別為Hibernate Configuration File,然後新增如下內容,我選用的是MySQL資料庫。
<hibernate-configuration>
    <session-factory>      
    	<!-- 配置連線資料庫的基本資訊 -->    
        <property name="connection.url">jdbc:mysql://localhost:3306/mysql</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
		
		<!-- 配置Hibernate的基本資訊 --> 
		<!-- 資料庫使用的方言-->
		<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
		
		<!-- 執行操作時是否在控制檯Console列印SQL語句-->
		<property name="show_sql">true</property>
		
		<!-- 是否對SQL進行格式化 -->
                <property name="format_sql">true</property>
        
                <!-- 自動生成資料表的策略,update可以自動建立表 -->
		<property name="hbm2ddl.auto">update</property>
		
		<!-- 類與表的對映檔案的註冊,類為News類,表在包hibernate中的News.hdb.xml進行詳細設定 -->
		<mapping resource = "hibernate/News.hdb.xml"/>
    </session-factory>
</hibernate-configuration>
關於上面的資訊與它們的值可以在如下目錄中的hibernate.properties裡邊選擇相關的資料庫進行檢視。




物件關係對映檔案hbm.xml


在hibernate包裡邊建立一個News.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="org.yjj">
	<class name = "hibernate.News" table = "NEWS">
		<!-- 指定主鍵,name表示News類中的屬性名,column則是資料庫中的名字 -->
		<!-- type可以使用Java中的java.lang.Integer,也可以直接使用hibernate中的int或Integer,hibernate可以實現自動轉換 -->
		<id name = "id" column = "ID" type = "java.lang.Integer">
			<!-- 指定主鍵的生成方式,native表示使用資料庫本地方法建立-->
			<!-- assign則表示由使用者設定-->
			<generator class = "native"></generator>
		</id>
		
		<property name = "title" type = "java.lang.String">
			<column name = "TITLE"></column>
		</property>
				
		<property name = "author" type = "java.lang.String">
			<column name = "AUTHOR"></column>
		</property>
		
		<property name = "date" type = "java.sql.Date">
			<column name = "DATE"></column>
		</property>
	</class>
</hibernate-mapping>


Test.java測試類
import java.sql.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;



    public class Test {

        /**
         * @param args
         */
        private SessionFactory sessionFactory;
        private Configuration configuration;
        private ServiceRegistry serviceRegistry;
        private Transaction transaction;
        private Session session;
        public Test(){
        	//1.建立一個SessionFactory
            sessionFactory = null;
            
            //1).建立一個Configuration,對應hibernate配置檔案和物件關係對映資訊
            configuration = new Configuration().configure();
            //2).建立一個ServiceRegistry物件,hibernate4.x新加的
            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
            //3).
            sessionFactory = configuration.buildSessionFactory(serviceRegistry);
            
            //2.建立一個session物件
            session = sessionFactory.openSession();
            //3.建立事物物件
            transaction = session.beginTransaction();
        }
        public void destroy(){
            transaction.commit();
            session.close();
            sessionFactory.close();
        }
        public void test(){                 
            
        	News news = new News();
            news.setAuthor("yjj");
            news.setDate(new Date(new java.util.Date().getTime()));
            news.setTitle("Title");
            
            session.save(news);
        }
        public void get(){
        	News news = (News)session.get(News.class, 0);
            System.out.println("result" + news.toString());
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Test t = new Test();
            t.test();
            t.get();
            t.destroy();

        }

    }


執行結果:

從下邊可以看到表開始是沒有的,Hibernate執行的SQL語句則最下的藍框所示。

接著切換到資料庫工作空間看看


可以看到我的MySQL資料庫中已經多了一個news表啦!


右鍵這個表名,點選generate->Select Statement,會出現SQL語句介面,然後執行它,就可以在下面看到結果啦,看,不僅表出現了,還已經有一個數據新增在裡邊了吧!


JDK版本差異錯誤:

提示如下錯誤了 

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file

解決辦法可見下面連結:

造成這種過錯是ni的支撐Tomcat執行的JDK版本與支撐application執行的JDK版本不一致導致的.
把它們的JDK版本改成一致步驟如下:
1.Window --> Preferences -->Java --> compiler中的compiler compliance level對應的下拉選單中選擇JDK版本.
2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉選單中選擇自身電腦上安裝的JDK版本(必需與步驟1中的JDK版本一致).

如果要在MyEclipse中新增jdk,則是

Window --> Preferences -->Java -->Installed JREs->add

JDK安裝在哪裡

可是我已經忘記JDK在哪裡了,我的JDK安裝在哪裡呢?如下,在控制面板裡邊有哦


tomcat的JDK設定


提示新增JRE不行,需要新增JDK尷尬原來我沒裝JDK呀!



沒有加DTD導致的XML問題

ERROR: HHH000196: Error parsing XML (2) : cvc-elt.1: Cannot find the declaration of element 'hibernate-mapping'

加上這一句<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

就好了

相關推薦

Hibernate第一配置使用圖文

實驗環境: MyEclipse 7 Tomcat 5 Hibernate 4.3.10 MySQL Hibernate庫匯入 建立工程之後,就該匯入Hibernate庫啦,因為我用的是MyEclipse 7,如果是按照如下工程自動匯入方式,就只有Hibernate 3版

第一用伺服器 環境配置

當個備忘錄,防止重置系統以後忘了要幹啥 環境:學生機 1CPU 2G 50G 1M,包年+.cn域名 128RMB,預裝ubuntu 16.04 32bit  1.java & mysql  openjdk安裝: sudo add-apt-repository p

第一用伺服器專案打包執行

開發環境:IDEA 2018.1 基於SpringBoot 2.0 + Maven1. 首先打包:  在pom.xml中配置: <groupId>自定義</groupId> <artifactId>自定義</artifactId> <

SmartBear SoapUI Pro入門教程--第一功能測試

SoapUI Pro擁有許多其他web服務測試工具所不具備的高階技術和功能。對於REST、SOAP以及其他流行的API和物聯網協議,它提供了業界最全面的功能測試功能。通過易用的圖形介面和企業級功能,SoapUI Pro允許你快速建立和執行自動功能測試。在單一環境下,SoapUI Pro提供了完整的測

SmartBear SoapUI Pro入門教程--第一功能測試

SoapUI Pro擁有許多其他web服務測試工具所不具備的高階技術和功能。對於REST、SOAP以及其他流行的API和物聯網協議,SoapUI Pro提供了業界最全面的功能測試功能。通過易用的圖形介面和企業級功能,SoapUI Pro允許你快速建立和執行自動功能測試。在單一環境下,SoapUI P

SmartBear SoapUI Pro入門教程--第一功能測試

SoapUI Pro擁有許多其他web服務測試工具所不具備的高階技術和功能。對於REST、SOAP以及其他流行的API和物聯網協議,SoapUI Pro提供了業界最全面的功能測試功能。通過易用的圖形介面和企業級功能,SoapUI Pro允許你快速建立和執行自動功能測試。在單一環境下,SoapUI P

從Oralce裸奔開始配置資料庫圖文

在實際做專案過程中,經常會用到Oralce,很多時候都需要自己手動安裝系統和資料庫。在配置資料庫時,往往比較頭疼。 ora配置檔案的編輯特別如此。測試不通過時,發生Error時,我們往往會去搜尋網上的解決方法。甚至還有的人會直接複製貼上網上的配置資訊到ora檔案。然後不知不覺把全形空格複製進

炒雞詳細的HCL的Telnet服務配置過程圖文

之前學習Linux有配置過Telnet服務達到Linux與Windows的通訊。在學習H3C路由的過程中,配置Telnet的基本思想是一樣的。 第一步首先開啟HCL拖拽一個主機一個路由器

struts2第一使用配置記錄圖文Hello-World

環境說明 MyEclipse7 struts-2.3.14 問題: 找不到action,讓我頭痛了一上午的問題呀 HTTP Status 404 - /Struts2/hello.action type Status report message /Struts2/he

我的一個配置redux實現一儲存呼叫方法之旅

前言 : 今天呢,就配置一下redux,redux的重要性呢,就叭叭叭一大堆,什麼也沒有帶著配置一次來的重要,因為許多涉及到的屬性和方法,用法是活的,但格式是需要記憶的。 過程中不要嫌我嘮叨,有的地方為了便於理解和記憶,反而會繞一下,配置redux的確比較麻煩,用到我們平時不常用的方法,我們不熟悉他們,所以會

王一恒《跨部門溝通協作》講座學習筆記圖文

尊嚴 原則 改進 贊美 抽象 準備 興趣 ont 承諾 上周六,參加了王一恒老師的《跨部門溝通與協作》講座,老師講的一些溝通的技巧和理論還是非常有實際操作價值的,在這裏與大家共同分享一下。 溝通最忌諱的是一臉死相。 “溝”是兩個人的事情。 溝通的黃金法則:你希

通達OA 小飛魚在線開發培訓第一講介紹圖文

eas 技術 src ext mar dsm rac popu -a 培訓課件的主要內容。須要參加培訓的同學要註意了。課程內容以有用為主。課件僅供參考。 通達OA 小飛魚在線開發培訓第一講介紹(圖文)

hibernate框架在eclipse下的配置方法

java、 sql數據庫 文件目錄 測試表 any 配置 包名 ive 當我 一、ORM O:object 對象 R:Realtion 關系(關系型數據庫) M:Mapping 映射 ORM:對象關系型映射   目前流行的編程語言,如Java、C# ,它們都是面向對象的編程

一周第一課筆記1月22日

終端 想要 alt 一次 鏡像 linux 一個 images bsp 一周第一次課(1月22日)1.1學習之初1.2約定1.3認識Linux1.4安裝虛擬機1.5安裝centos7 1.1學習之初 學習之前合理定位自己 給自己設定1個合理目標 計劃好學習的期限

FineBI學習系列之FineBI的Windows裏安裝後的一些配置事宜圖文詳解

fine left text -a 得到 幹貨 圖文詳解 註冊 博客   不多說,直接上幹貨!   前期博客   第一步:需要點擊獲取激活碼     第二步:點擊註冊   註冊的

配置mac環境下的JAVA_HOME 配置maven Mac上jdk的配置 (四)在terminal中執行.class檔案

(一)mac環境下,echo $JAVA_HOME 一般輸出為空,但有時候某些構件會需要有javahome的配置,這時就需要把Java home配置好。 步驟: 1, 命令列輸入: /usr/libexec/java_home 我的環境輸出是 /Library/Java/JavaVi

第一團隊作業團隊風采

團隊作業 1、隊名隊長去世了2、團隊成員的姓名與學號211606377 覃一霸(隊長)211606346 張江波211606371 劉治江211606384 夏培華211606332 王猷敏211406263 陳珍211506319 林華偉211506332 熊哲琛3、隊長的部落格連結https://www

GeoMesa編譯開發專欄3 — GeoMesa原始碼編譯

前言 1、參考:GeoMesa官方英文文件:https://www.geomesa.org/documentation/developer/introduction.html 2、本篇介紹瞭如何編譯GeoMesa原始碼,即官方文件中所謂的從原始碼構建GeoMesa,以及對GeoM

GeoMesa編譯開發專欄2 — GeoMesa簡介

本篇參考的文件與部落格: 1、GeoMesa官網介紹:https://www.geomesa.org/documentation/index.html 2、阿里雲-GeoMesa開發指南:https://help.aliyun.com/document_detail/87287.html

GeoMesa編譯開發專欄1 — 開篇

開篇前言 1、近期因專案需要,筆者開始研究利用GeoMesa-Kafka儲存“流式”資料(例如動態的軌跡點資料,攝像頭的音、視訊流資料等)。採用邊學習邊總結的方式,筆者定期對研究進行總結,方得此專欄。 2、由於專案需求的限定,本專欄的原始碼編譯、使用者手冊、入門教程暫時主要限於