Hibernate配置Oracle

小Gd發表於2018-05-29

Hibernate配置之Oracle篇:

Oracle的安裝我就不說了,網上有很多教程,不得不說有點麻煩(口令管理的地方需要注意,千萬別忘了,要不以後會更麻煩),沒裝明白解除安裝起來就更麻煩了,我來來回回折騰了差不多三遍才差不多弄明白。需要注意的地方是安裝的時候如果選擇的是建立和配置資料庫,那麼安裝完成以後就已經新建了一個資料庫,不需要再次新建資料庫了,而這個資料庫的名字如果沒有手動更改,那麼應該就是預設的orcl了。

因為之前用的eclipse是比較新的oxygen版本,所以有很多外掛已經不支援了,用起來比較麻煩,所以就下載了一個eclipse-jee-juno-SR1-win32-x86_64的64位eclipse,感覺比較好用,廢話說到這裡,下面進入Hibernate的配置:

1、第一步當然是要新建一個專案了(開啟eclipse就算是第零步吧)File —>new—>Java Project—>輸入Project name(FirstHibernate)—>Finish;


需要注意的是JDK版本的選擇,有高版本的儘量選擇高版本的!!!

2、匯入jar包,必需的jar包有Hibernate安裝目錄下的lib資料夾下的required資料夾中的所有jar包以及連線Oracle資料庫的驅動,連線Oracle資料庫的驅動在Oracle安裝目錄下的jdbc下的lib( E:\app\root\product\12.1.0\dbhome_1\jdbc\lib,此處為我的目錄  )資料夾裡,方便起見,附上目錄圖片和匯入的jar包圖片:



還有日誌檔案的jar包,不是執行所必需的,但是要顯示專案的日誌資訊就需要匯入。

3、編寫實體類User.java(為了隱藏專案複雜性,在src目錄下新建org.User包):


package org.User;

public class User {
	private int id;
	private int age;
	private String name;
	private String password;

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;  
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	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、編寫配置檔案(用來配置Oracle資料庫,此檔案要放在src目錄下)hibernate.cfg.xml():


<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!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="show_sql">true</property>
		<property name="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</property>
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="hibernate.connection.username">system</property>
		<property name="hibernate.connection.password">123456</property>
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<mapping resource="org/User/hibernate.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

這裡可以用Data Source Explorer測試一下配置是否成功!

5、在資料庫中新建表(t_user),此處為資料庫操作不進行詳細介紹,需要注意的是Oracle表的重新整理是要寫SQL語句的,之前因為不知道這個事Gd我愣是把配置好的Hibernate又折騰了一遍:


6、編寫對映檔案hibernate.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">
<!-- Generated 2017-8-22 10:37:16 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="org.User.User" table="T_USER">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" />
        </property>
        <property name="age" type="int">
            <column name="AGE" />
        </property>
    </class>
</hibernate-mapping>

這裡主要是實體類和資料庫表之間的對應關係!

7、新建包(org.Test),編寫測試類(用於執行和驗證整體配置是否成功):


package org.Test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.User.User;
public class Test{
	public void testIncrease(){
	Configuration conf = new Configuration().configure();
	SessionFactory sf = conf.buildSessionFactory();
	Session session  = sf.openSession();
	Transaction tx = null;
	try {
		tx = session.beginTransaction();
		User u = new User();
		u.setName("小巴");
		u.setPassword("aiweigege");
		session.save(u);
		tx.commit();
	} catch (Exception e)
	{
		// TODO: handle exception
		if(null!=tx){tx.rollback();}
		e.printStackTrace();
	}
}

	
	public static void main(String[] args) {
		Test test = new Test();
		test.testIncrease();
		//test.testDelete();
	}
}

這裡需要掌握java裡的一些關於session類的知識了!

8、執行Test.java,檢視是否配置成功:

如果出現以下結果,證明配置成功!


此時在資料庫中的表已經被更新:


Hibernate和Oracle搭橋成功,大功告成!!!


相關文章