1. 程式人生 > >Hibernate基礎入門例項

Hibernate基礎入門例項

我們總共需要做五件事

   1:製造資料

       1.1 在資料庫中建立一個名為test的資料庫

create database test

      1.2建立資料表

create TABLE product(
   int id(10) NOT NULL  AUTO_INCREMENT,
   name char(10),
   price float(10),
   primary key (id)
)DEFAULT CHARSET utf8;
  

  2:建立一個project工程(你們應該也會用eclipse吧,應該會)

     2.1建立一個java工程

      2.2:幹活,把jar包乾進去,我們先把jar包放到lib資料夾中,
然後把加到路徑中去(別忘了)

     

      2.3:建立實體類Product,和資料庫中的一一對應

package com.ccut.pojo;

public class Product {
	private int id;
	private String name;
	private float price;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public float getPrice() {
		return price;
	}

	public void setPrice(float price) {
		this.price = price;
	}

}

    2.4:配置Product.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">
 
<hibernate-mapping package="com.ccut.pojo">
    <class name="Product" table="product_">
      <!--儘量避免使用複雜的物理主鍵,應該為資料庫增加一列,作為邏輯主鍵,hibernate為這種邏輯主鍵提供了主鍵生成器,用<generator>元素來指定主鍵的生成器
                 該元素的作用是指定主鍵的生成器  -->
        <id name="id" column="id">
        <!--native是Hibernate主鍵生成器的實現演算法之一,由Hibernate根據底層資料庫自行判斷採用identity、hilo、sequence其中一種作為主鍵生成方式。 -->
           <generator class="native">
            </generator>
        </id>
        <!--普通屬性用<property>元素來表示持久化類的屬性與資料庫表字段之間的對映 -->
        <property name="name" column="names" />
        <property name="price" />
    </class>
     
</hibernate-mapping>

     2.5配置hiberante.config.xml檔案(我們一般把它放到src檔案目錄下面,)

<?xml version='1.0' encoding='utf-8'?>
<!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>
        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</property>
        <property name="connection.characterEncoding">utf-8</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <!--上面的不用解釋了,應該能看動-->
        <!--dialect mysql方言  這個傢伙又什麼用呢  ,在程式碼層面,開發人員不用關心底層到底用Oracle還是Mysql,
                             寫的程式碼都是一樣的。 可是Oracle和Mysql所用的sql語句的語法是有所區別的,那麼這件事就交給Hibernate來做了。這個時候就需要告訴Hibernate底層用的是什麼資料庫,
                                          它才知道應該用什麼樣的“方言” 去對話。  -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!--hibrnate事物管理,一個執行緒事物  -->
        <property name="current_session_context_class">thread</property>
        <!--控制檯下面是否列印我們的sql語句  -->
        <property name="show_sql">true</property>
        <!-- 這表示是否會自動更新資料庫的表結構,有這句話,其實是不需要建立表的,因為Hibernate會自動去建立表結構 (部落格第一大步其實可以跳過,不好意思給你們埋個坑)-->
        <property name="hbm2ddl.auto">update</property>
        <!--我感覺是找配置檔案去了  -->
        <mapping resource="com/ccut/pojo/Product.hbm.xml" />
    </session-factory>
 
</hibernate-configuration>

2.6:是時候來波測試是否好使不好使了(測試類)(程式碼安1,2,3.4步看)(1.1,1.2,1.3是另外一種得到sessionFactory的方法)

package com.ccut.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

import com.ccut.pojo.Product;

public class TestHibernate {
	public static void main(String[] args) {
//      //1  是4 版本得到 獲得sessionfactor (預設載入src下的hibernate.cfg.xml檔案) 
//		SessionFactory sf = new Configuration().configure().buildSessionFactory();
        
		 //1.1:讀取hibernate配置檔案
		 Configuration cfg = new Configuration().configure("com/ccut/conf/hibernate.cfg.xml");
		
		 //1.2和1.1是 hibernate 5版本得到sessionfactory
		 ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
		 //1.3 從ServiceRegistry得到sessionfactor
		 SessionFactory sf=cfg.buildSessionFactory(serviceRegistry);
		 
		 //2:得到一個session
		Session s = sf.openSession();
		//3:得到一個事物
		s.beginTransaction();

		Product p = new Product();
		p.setName("iphone飛");
		p.setPrice(7000);
		
		//4:通過呼叫session中的save方法把物件儲存到資料中
		s.save(p);
        //5:事物提交
		s.getTransaction().commit();
		//6:關閉session
		s.close();
		//7:關閉sessionfactor
		sf.close();
	}

}

3:結果,收工

2


相關推薦

Hibernate基礎入門例項

我們總共需要做五件事   1:製造資料       1.1 在資料庫中建立一個名為test的資料庫create database test      1.2建立資料表create TABLE product( int id(10) NOT NULL AUTO_INCR

Hibernate (基礎入門)

Hibernate開發步驟 建立持久化類(Book) 建立物件--關係對映檔案(Book.hbm.xml) 建立Hibernate配置檔案(Book.hbm.xml) 建立介面(BookDao) 建立實現介面類(BookImpl) 整個web結構如下 建立

Hibernate基礎入門

加載 bean ddl data 創建web工程 source private avi main   Hibernate是一個開放源代碼的對象關系映射框架,它將POJO與數據庫表之間建立映射關系。是全自動的ORM框架,可以自動生成SQL語句並自動執行。它對JDBC進行了非常

Docker 基礎入門+例項(5)

網路配置 大量的網際網路應用服務需要多個容器間進行網路通訊。 docker目前提空了對映容器埠到主機和容器互聯機制來為容器提供網路服務 埠對映實現訪問容器 在啟動容器時,若不指定對應的引數,在容器外是不能通過網路訪問的。 可以使用-p或-p引數來指定埠

hibernate入門例項

###Hibernate5簡單應用例項 1.下載Hibernate所需jar包 2.新建java專案,並匯入jar包 3.新建User.java檔案,User類的屬性於資料庫表的欄位一一對應 -- ---------------------------- -- Table str

Python入門基礎知識例項

今天小白就為大家分享一些Python的基礎知識,希望大家都能快速入門Python~   1.在Python 語言中,物件是通過引用傳遞的。 在賦值時,不管這個物件是新建立的,還是一個已經存在的,都是將該物件的引用(並不是值)賦值給變數。 如:x=2 2這個整形物件被建立,然後將

火星PHP基礎入門到高階開發教程 含Js、Mysql例項目前最完整

1.1 startActivity(ForResult)@Activity Activity類的startActivity()對於Android開發者來說可謂是再熟悉不過了。作為應用程序啟動Activity的入口,經過一系列方法過載呼叫後,startActivity()最終

Hibernate基礎例項

hibernate是orm(物件關係對映)框架 即通過配置檔案使物件與資料庫表關聯 讓eclipse斷網擁有xml提示功能 ①解壓hibernate-core-5.0.7.Final.jar ②進入org\hibernate下複製到單獨檔案//此處演示配置單個 其餘配置同理hibernate-confi

Hibernate基礎:快速入門(6):修改資料

資料庫的操作增刪改查,或者CRUD是最常見的操作。這篇文章中介紹修改資料的方法 hibernate.cfg.xml 建立如下所示的hibernate的設定檔案 <?xml version="1.0" encoding="utf

SSM框架(Spring Spring MVC Mybatis)基礎入門學習2——Spring入門例項

上次學習了servlet的基礎知識還記得麼,先來回顧一下吧:講了servlet的訪問流程,配置方法,以及原理。今天我們來學習spring的入門例項,分為3部分來學習。 1.Spring的基本知識:IoC(控制反轉)和DI(依賴注入),AOP(面向切面的程式設計) 2.Spr

python簡介及基礎入門 day1

blog 美女 顯示 中文 公開 wid 能開 程序 cnblogs    一、python介紹: Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。 Python由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年

【原創 Hadoop&Spark 動手實踐 5】Spark 基礎入門,集群搭建以及Spark Shell

min util man 操作 because tro txt library all Spark 基礎入門,集群搭建以及Spark Shell 主要借助Spark基礎的PPT,再加上實際的動手操作來加強概念的理解和實踐。

Hibernate基礎映射

localhost cond 處理對象 詳細 實體 log 策略 我們 hbm2ddl 在說Hibernate映射前,我們先來了解下對象關系映射 ORM。ORM的實現思想就是將關系數據庫中表的數據映射成對象,以對象的形式展現。這樣開發者就能夠把對數據庫的操

python 基礎入門

兩個 快捷語法 字母 雙引號 ted perl 關鍵字 表達 pass Python 特點 1.易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。 2.易於閱讀:Python代碼定義的更清晰。 3.易於維護:Pytho

Linux基礎入門--IO重定向及管道

linux_io重定向、管道IO重定向及管道 一直都提到,程序:指令+數據 其實程序也有IO,數據的來源有多個地方:文件、外部可用於輸入的設備:文件(linux一切皆文件) 鍵盤設備、文件系統上的常規文件加載內容、網卡等;可用於輸出的設備:文件(linux一切皆文件) 顯示器、文件系統

linux 基礎入門學習

基礎知識 二進制 配置文件 學習計算機 linux程序 上節課學習計算機基礎以及liunx起源和自由軟件協議的相關規定,今天學習相關linux入門的基礎知識: 一、首先講解了linux程序包的管理 1、程序包的組成:(1)二進制文件(2) 配置文件(3)庫文件(4)幫助文件

EasyUI基礎入門之Pagination(分頁)

比例 tab 由於 名稱 script idt 分隔符 jquery show 前言 對於一些企業級的應用來說(非站點),頁面上最為基本的內容也就是表格和form了。對於類似於ERP這類系統來說數據記錄比較大,前端表格展示的時候必需得實現分頁功能了。恰巧

Linux基礎入門--find(文件查找)

linux基礎find文件查找:在文件系統上查找符合條件的文件,條件是自己給出Linux系統上實現工具:locate,findlocate: 依賴於實現構建好的索引庫,系統自動實現,一旦文件發生變化需要一定的周期時間更新。也可以手動更新數據。在索引構建過程中需要遍歷整個文件系統,極消耗資源。 工作特點:

Hive 基礎入門

加載 http 基礎入門 沒有 運行 轉化 自定義 函數 images Hive的官方網站:       https://hive.apache.org/ Hive簡介:       Hive 是基於Hadoop 的一個數據倉庫工具,可以將結構化的數據文件映射成一張表,並提

hibernate基礎工具findBySQL學習

ceo obj turn res nfa 字段 result entry 不同 public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,