1. 程式人生 > >Hibernate(1)——簡單、快速上手

Hibernate(1)——簡單、快速上手

目錄

1. Hibernate-orm

2. 快速上手

2.1 步驟

2.2 建立資料庫表t_user

2.3 建立java物件User.java

2.4 新增jar

2.5  建立hibernate核心配置檔案hibernate.cfg.xml

2.6 建立對映檔案

hibernate基本資料型別對映:——可參考連結:hibernate基本資料型別對映

2.7 測試類

執行成功:


1. Hibernate-orm

Domain model persistence for relational databases

Orm:Object relational mapping,物件對映關係,用於物件與關係型資料庫關聯對映框架。

2. 快速上手

2.1 步驟

            建立資料庫表t_user

            建立java物件User.java

            新增jar包

            建立對映檔案

            建立hibernate核心配置檔案hibernate.cfg.xml

            測試

2.2 建立資料庫表t_user

           

CREATE DATABASE hibernate_207 CHARSET `UTF8`;

CREATE TABLE t_user(

  id INT(9) PRIMARY KEY AUTO_INCREMENT,

  uname VARCHAR(50) NOT NULL

);

2.3 建立java物件User.java

2.4 新增jar

以及新增mysql-connection.jar

2.5  建立hibernate核心配置檔案hibernate.cfg.xml

            注意:還要安裝一個專門為hibernate開發的工具:

eclipse安裝步驟:

選擇add進行線上安裝,選擇archive從本地來選擇上面我們說那個zip工具包:

然後點選選擇:

依次點選下一步即可,裝完之後我們的配置檔案在寫的時候就會有智慧提醒。並且,我們在new的時候,可以專門去找hibernate.cfg.xm檔案,下一步會有圖形化選擇來讓我們填寫。

而在IDEA中,沒有install new software這個操作,在IDEA中,我們是這麼做的:

首先,對專案目錄進行必要的配置:

  • 在main目錄下新增resources資料夾,並且設定為resource
  • 在test目錄下新增resources資料夾,並且設定為test-resources

具體方法如下:

IDEA中給專案新增支援的框架,右擊專案名,選擇add framework support.如果裡面沒有的話,就到File---settings裡面-----plugin搜尋新增apply。然後restart我們的idea,就可以到add framework support裡面看到我們想要的框架名字。勾選,apply。

上面有兩個可選項:

Create default hibernate configuration and main class

Import database schema

第一個是建立一個系統預設的hibernate的測試類(初學Hibernate時建議勾選,因為它會 給你提供相應的一些建立session的方法及幫助),勾選後會生成如下除錯程式碼;

第二個是匯入已有的資料庫Table,若此時已建立相應的Table,則可勾選,若沒有則 後期在來建立。

新增完成後,點選上面的專案架構圖示

進入project structure中的facets中,點選右邊那個+號,就可以生成hibernate.cfg.xml。

 

下面是我們核心配置檔案的具體內容:

<!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>
		<!-- 1.方言:指定資料庫型別 -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<!-- 2.配置資料來源 -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/hibernate_207</property>
		<property name="connection.username">root</property>
		<property name="connection.password">111111</property>
		
		<!-- 列印sql -->
		<property name="show_sql">true</property>
		
		<!-- 3.載入對映檔案 -->
		<mapping resource="com/sxt/model/user.hbm.xml"/>
	
	</session-factory>

</hibernate-configuration>

2.6 建立對映檔案

                 user.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- package:java物件包路徑 -->
<hibernate-mapping package="com.sxt.model">
	<!-- 配置物件與table表關係 -->
	<class name="User" table="t_user">
		<!-- 指定主鍵 name:表示java物件屬性名   column:table表中的欄位 -->
		<id name="id" column="id" type="integer">
			<!-- 配置主鍵自增策略 -->
			<generator class="native"/>
		</id>
		<!-- 配置其他屬性與欄位關聯關係 -->
		<property name="uname" column="uname" type="string"/>
	</class>
</hibernate-mapping>

hibernate基本資料型別對映:——可參考連結:hibernate基本資料型別對映

我們使用的IDEA,那麼在IDEA中,我們配置號hibernate核心檔案之後,可以通過資料庫中的表來自動建立orm配置檔案。 

首先我們先把資料庫工具視窗開啟 

然後點選小綠+,選擇MySQL

把該填寫的都填上。

然後點選測試連線:如果像上圖一樣,這個Test Connection不顯示的話,點選下方的下載(藍色的Download

然後我們就可以看到可以顯示了。

儲存連線之後,就可以看到資料庫的具體內容:

下面是我們看到的資料庫的具體內容:

然後,我們把persistent工具開啟:

在這個視窗下面右擊專案名:

Generate Persistence Mapping -> By Database Schema 根據資料庫來建立對映。 

按照上圖進行選擇,注意紅線框起來的部分。 

點選OK,我們可以看到不光是orm配置檔案,連對應的類都幫我們建立好了。 

點開brm.xml和類檔案,會發現有一些報錯提示。 如果有的話,那麼我們選擇點選alt+enter,提示讓我們鎖定資料來源。

直接點enter進入

滑鼠點選,OK即可。(IDEA之強大,讓我一天比一天喜歡)

提醒:看兩種方式建立起來的brm.xml檔案有什麼差別,我們在學習使用快捷便利的工具的同時,不要忘記思考。另外,這種方式還給我們生成了hibernate.cfg.xml檔案,裡面沒有給我們寫所連線資料庫的使用者名稱和密碼,注意新增!!!!

2.7 測試類

package com.sxt.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

import com.sxt.model.User;

public class Helloworld {
	public static void main(String[] args) {
		//1.載入配置檔案
		Configuration cfg = new Configuration();
		cfg.configure("hibernate.cfg.xml");
		
		//2.建立sessionFactory cfg.buildSessionFactory()已被廢棄
		ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
		SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry);
		
		
		//3.開啟全新session
		Session session = sessionFactory.openSession();
		
		try {
			//事務
			Transaction ts = session.beginTransaction();
			
			User user = new User();
			user.setUname("bjsxt");
			//新增資料
			session.save(user);
			
			//提交事務
			ts.commit();
		} catch (Exception e) {
			
		}finally {
			//關閉連線
			if(session!=null){
				session.close();
			}
			if(sessionFactory!=null){
				sessionFactory.close();
			}
		}
		
		
	}
}

執行成功: