• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Hibernate學習筆記 -- day01 Hibernate介紹及入門案例環境搭建

    一、什么是ORM

    object  Relation  Mapping:對象關系映射,即把實體類和數據庫表建立起來的對應關系

    二、Hibernate開發包介紹


    三、搭建 Hibernate 的前期開發環境

    1、創建數據庫,導入數據

    /*創建客戶表*/
    CREATE TABLE `cst_customer` (
      `cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客戶編號(主鍵)',
      `cust_name` varchar(32) NOT NULL COMMENT '客戶名稱(公司名稱)',
      `cust_source` varchar(32) DEFAULT NULL COMMENT '客戶信息來源',
      `cust_industry` varchar(32) DEFAULT NULL COMMENT '客戶所屬行業',
      `cust_level` varchar(32) DEFAULT NULL COMMENT '客戶級別',
      `cust_address` varchar(128) DEFAULT NULL COMMENT '客戶聯系地址',
      `cust_phone` varchar(64) DEFAULT NULL COMMENT '客戶聯系電話',
      PRIMARY KEY (`cust_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
    
    /*創建聯系人表*/
    CREATE TABLE `cst_linkman` (
      `lkm_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '聯系人編號(主鍵)',
      `lkm_name` varchar(16) DEFAULT NULL COMMENT '聯系人姓名',
      `lkm_gender` char(1) DEFAULT NULL COMMENT '聯系人性別',
      `lkm_phone` varchar(16) DEFAULT NULL COMMENT '聯系人辦公電話',
      `lkm_mobile` varchar(16) DEFAULT NULL COMMENT '聯系人手機',
      `lkm_email` varchar(64) DEFAULT NULL COMMENT '聯系人郵箱',
      `lkm_position` varchar(16) DEFAULT NULL COMMENT '聯系人職位',
      `lkm_memo` varchar(512) DEFAULT NULL COMMENT '聯系人備注',
      PRIMARY KEY (`lkm_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

    2、創建java工程,導入jar包

    (1)、9個必要的jar包


    (2)、3個日志依賴的包


    (3)、mysql數據庫驅動包


    3、根據數據庫編寫對應的實體類

    package cn.itcast.domain;
    
    import java.io.Serializable;
    
    /**
     * 客戶的實體類
     * 
     * @Description: TODO
     * @author wingzhe
     * @date 2017年7月26日 下午1:54:44
     * @version V1.0
     */
    public class Customer implements Serializable {
    
    	private Long custId;
    	private String custName;
    	private String custSource;
    	private String custIndustry;
    	private String custLevel;
    	private String custAddress;
    	private String custPhone;
    
    	public Long getCustId() {
    		return custId;
    	}
    
    	public void setCustId(Long custId) {
    		this.custId = custId;
    	}
    
    	public String getCustName() {
    		return custName;
    	}
    
    	public void setCustName(String custName) {
    		this.custName = custName;
    	}
    
    	public String getCustSource() {
    		return custSource;
    	}
    
    	public void setCustSource(String custSource) {
    		this.custSource = custSource;
    	}
    
    	public String getCustIndustry() {
    		return custIndustry;
    	}
    
    	public void setCustIndustry(String custIndustry) {
    		this.custIndustry = custIndustry;
    	}
    
    	public String getCustLevel() {
    		return custLevel;
    	}
    
    	public void setCustLevel(String custLevel) {
    		this.custLevel = custLevel;
    	}
    
    	public String getCustAddress() {
    		return custAddress;
    	}
    
    	public void setCustAddress(String custAddress) {
    		this.custAddress = custAddress;
    	}
    
    	public String getCustPhone() {
    		return custPhone;
    	}
    
    	public void setCustPhone(String custPhone) {
    		this.custPhone = custPhone;
    	}
    
    }
    

    4、編寫實體類對應的映射文件


    (1)、導入dtd約束文件


    (2)、編寫映射文件內容

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 導入dtd約束:約束文件在hibernate的核心jar包中
    	hibernate-mapping-3.0.dtd
    	它是建立實體類和數據庫表的映射文件
    	里面應該包含的內容有:
    		實體類和數據庫表的對應關系
    		實體類中屬性和表中列的對應關系
     -->
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="cn.itcast.domain"><!-- package用于導入一個包,接下來再配置文件中再出現此包的類都可以不用導了。 -->
    	<!-- class標簽:
    			作用:
    				用于建立實體類和表的對應關系
    			屬性:
    			 	name:實體類的名稱
    			 	table:數據庫的表名
    	-->
    	<class name="Customer" table="cst_customer">
    		<!-- id標簽:
    				作用:用于映射主鍵
    				屬性:
    					name:指定實體類中屬性的名稱(注意它找的是get/set方法后面的部分。不是私有成員變量名稱)
    					column:指定的數據庫表的列名稱
    		-->
    		<id name="custId" column="cust_id">
    			<!-- generator標簽:
    					作用:指定主鍵的生成策略
    					取值是hibernate提供的。
    					我們今天只用一種:native
    					它的含義:使用本地數據庫的自動增長能力。
    			-->
    			<generator class="native"></generator>
    		</id>
    		
    		<!-- property標簽:
    				作用:映射其他字段。
    				屬性:
    				  name:指定的是實體類中屬性get/set方法后面的部分。
    				  column:指定的數據庫表的列名稱
    		-->
    		<property name="custName" column="cust_name"></property>
    		<property name="custSource" column="cust_source"></property>
    		<property name="custIndustry" column="cust_industry"></property>
    		<property name="custLevel" column="cust_level"></property>
    		<property name="custAddress" column="cust_address"></property>
    		<property name="custPhone" column="cust_phone"></property>
    	</class>
    </hibernate-mapping>

    5、配置hibernate核心配置文件


    <?xml version="1.0" encoding="UTF-8"?>
    <!-- hibernate的主配置文件,里面配置的都是和連接數據庫相關的 -->
    <!DOCTYPE hibernate-configuration PUBLIC
    	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
    	<!-- 配置SessionFactory:
    			SessionFactory它的作用就是用于生產Session對象的
    			Session干嗎的,它就是和數據庫交互的。用于對數據庫表進行增刪改查的。
    			
    	此配置文件不需要大家背下來。但是必須要知道:
    			創建SessionFactory必須由3部分信息組成。
    			第一部分:連接數據庫的信息
    			第二部分:hibernate的基本配置
    			第三部分:映射文件的位置
    			
    			配置文件的key都在:\hibernate-release-5.0.7.Final\project\etc\hibernate.properties中
    	-->
    	<session-factory>
    		<!-- 1、連接數據庫的信息 -->
    		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/day36_ee247_hibernate</property>
    		<property name="hibernate.connection.username">root</property>
    		<property name="hibernate.connection.password">1234</property>
    		<!-- 2、hibernate的基本配置 -->
    		<!-- 數據庫的方言 -->
    		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    		<!-- 是否顯示SQL語句 -->
    		<property name="hibernate.show_sql">true</property>
    		<!-- 是否格式化SQL語句 -->
    		<property name="hibernate.format_sql">true</property>
    		<!-- 選擇生成DDL語句的策略 
    			它只能用于更新表結構,不能用于創建數據庫
    		-->
    		<property name="hibernate.hbm2ddl.auto">update</property>
    		
    		<!-- 3、指定映射文件的位置 -->
    		<mapping resource="cn/itcast/domain/Customer.hbm.xml"/>
    	</session-factory>
    </hibernate-configuration>


    版權聲明:本文為wingzhezhe原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/wingzhezhe/article/details/76142765

    智能推薦

    C#編程學習入門-Day01

    C#編程學習入門-Day01=2020/2/7 使用書籍為《C#入門經典(第七版)》清華大學出版社 編程工具使用Microsoft Visual Studio 2017 書中推薦當時的最新版vs2015,我電腦上剛好有安裝好的2012和2017,所以在這里選擇了使用2017 本書第一章介紹了.net編程和C#, 第二章 第二章開始進入基礎編程 點擊工具選項卡,導入和導出設置 將工具重置為C# 開始...

    【學習筆記-SSH框架】Hibernate入門-筆記01-搭建Hibernate應用環境及實現增刪查改功能、以及Query、Criteria查詢

    Hibernate入門-筆記01-搭建Hibernate應用環境及實現增刪查改功能、以及Query、Criteria查詢 目錄 使用Maven搭建Hibernate項目 自頂向下開發Hibernate應用步驟 封裝Hibernate工具類 實現增刪查改功能 使用Query進行HQL查詢 使用Criteria進行條件查詢 POJO狀態 1. 使用Maven搭建Hibernate項目 在IDE中創建m...

    Hibernate框架學習筆記01

    1:hibernate是什么 (1)框架是什么 1.框架是用來提高開發效率的 2.封裝好了一些功能.我們需要使用這些功能時,調用即可.不需要再手動實現. 3.所以框架可以理解成是一個半成品的項目.只要懂得如何駕馭這些功能即可. (2)hibernate框架是什么 (3)hibernate的好處 操作數據庫的時候,可以以面向對象的方式來完成.不需要書寫SQL語句 (4)hibernate是一款orm...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    猜你喜歡

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    精品国产乱码久久久久久蜜桃不卡