• <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框架簡介①

    標簽: JAVA  Hibernate

    這個Hibernate框架系列是使用配置文件的方式來搭建的(非注解方式)

    搭建環境:

    引包: 鏈接:https://pan.baidu.com/s/1tqCg1HYwQaW86HDW6s2rLg 密碼:upj1

     

    創建實體類User:

    package com.rl.hiber.model;
    
    import java.util.Date;
    
    public class User {
    
        private int userId;
        
        private String uname;
        
        private int gender;
        
        private Date birthday;
    
        public int getUserId() {
            return userId;
        }
    
        public void setUserId(int userId) {
            this.userId = userId;
        }
    
        public String getUname() {
            return uname;
        }
    
        public void setUname(String uname) {
            this.uname = uname;
        }
    
        public int getGender() {
            return gender;
        }
    
        public void setGender(int gender) {
            this.gender = gender;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    }
    

    映射文件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">
    
    <hibernate-mapping>
        <class name="com.rl.hiber.model.User" table="t_user">
            <id name="userId" column="user_id">
                <generator class="assigned"></generator>
            </id>
            <property name="pname" column="pname"></property>
            <property name="gender" column="gender"></property>
            <property name="birthday" column="birthday"></property>
        </class>
    </hibernate-mapping>

     

    配置文件hibernate.cfg.xml

    <?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>
    
            <!-- 數據庫連接設置 -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/hiber01</property>
            <property name="connection.username">root</property>
            <property name="connection.password">root</property>
    
            <!-- 設置數據庫連接池初始化連接數 -->
            <property name="connection.pool_size">1</property>
    
            <!-- 數據庫方言 -->
            <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
    
            <!-- 是否在后臺展示數據庫 -->
            <property name="show_sql">true</property>
    
            <!-- 配置實體類映射文件的位置 -->
            <mapping resource="com/rl/hiber/model/User.hbm.xml"/>
        </session-factory>
    
    </hibernate-configuration>

    接下來需要創建數據庫hiber01, 這里不贅述

     

    提供一個工具類, 該工具類能夠自動生成建表腳本, 幫助我們自動建表

    DBExport:

    package com.rl.hiber.utils;
    
    import org.hibernate.cfg.Configuration;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    
    /**
     * 工具類: 自動建表
     * @author Administrator
     */
    public class DBExport {
    
        public static void main(String[] args) {
            //創建hibernate的配置對象
            Configuration cfg = new Configuration();
            //指定hibernate配置文件的位置
            cfg.configure("hibernate.cfg.xml");
            //創建表的對象
            SchemaExport se = new SchemaExport(cfg);
            se.create(true, true);
        }
    }
    

    查看數據庫結果:

    測試代碼:

    package com.rl.hiber.test;
    
    import java.util.Date;
    
    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 org.junit.Test;
    
    import com.rl.hiber.model.User;
    
    public class TestHibernate {
    
        @Test
        public void test() {
            Configuration cfg = new Configuration();
            //配置hibernate核心文件的位置
            cfg.configure("hibernate.cfg.xml");
            //注冊配置屬性信息
            ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
            //創建SessionFactory對象, 該對象非常大, 一個項目啟動多久, 該SessionFactory就運行多久
            SessionFactory factory = cfg.buildSessionFactory(sr);
            //打開session
            Session session = factory.openSession();
            //需要先開啟事務
            Transaction tx = session.beginTransaction();
            //創建對象
            User user = new User();
            user.setUserId(1);
            user.setUname("zhangsan");
            user.setGender(1);
            user.setBirthday(new Date());
            //保存user對象到數據庫中
            session.save(user);
            //事務提交
            tx.commit();
            //關閉session節省資源
            session.close();
        }
    }
    

    數據庫結果:

     

    下面簡單介紹一下hibernate的配置文件(涉及到兩個配置文件 分別是hibernate.cfg.xml和xxx.hbm.xml)

    數據庫連接的配置:

    必選配置(數據庫連接配置, 注冊映射文件)

    可選配置:

    數據庫連接池, 數據庫方言(各種數據的方言自行百度), 是否輸出sql

    高級配置:

    由于自帶的連接池功能太弱, 因此將數據庫連接池修改成c3p0的連接池:

    建表策略(提一下, 不重要了解即可, 默認使用none):

    <property name="hbm2ddl.auto">none</property>

    這句可不配置, 默認就none

    總共有四個狀態:

    none: 什么都不做

    create: 每次執行hibernate的操作是都先刪表再建表

    create-drop: 每次執行hibernate操作時都先建表再填入數據, 且SessionFactory一旦關閉則將表全部刪除

    validate: 每次執行hibernate操作時就驗證數據庫的表和mapping的關系是否正確

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

    智能推薦

    Hibernate框架

    Hibernate是一個開放源代碼的對象關系映射框架(ORM),它對JDBC進行了非常輕量級的對象封裝,簡化了java應用程序與數據庫交互的開發。簡化了數據創建,數據處理和數據訪問。 ①面向對象操作:將對數據庫的操作轉換為對Java對象的操作。 ②數據庫獨立查詢:通過配置對應的數據庫“方言”,就可以根據不同類型的數據庫生成適合的SQL語句。 ③非侵入式:Hibernate不...

    Hibernate框架

    Hibernate框架 1、簡介 Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在S...

    MyBatis簡介和Hibernate簡介

    MyBatis簡介 MyBatis的前身是Apache的開源項目iBatis。iBatis一次來源于internet,和abatis的組合,是一個基于Java持久層架構。2010年這個項目由Apache software foundation遷移到Google code,并更名為MyBatis。2013年11月,MyBatis遷移到Github上,目前由Github提供維護。 MyBatis的優勢...

    Hibernate配置和簡介

    Hibernate構架 Hibernate 什么是hibernate? 在了解hibernate之前我們先來了解一下什么是ORM: ORM是怎么工作的? hibernate概念: hibernate的優點: Hibernate環境配置 在eclipse上配置Hibernate 在IDEA上配置Hibernate Hibernate配置步驟: Hibernate的核心接口 1.Configurati...

    Hibernate 框架學習——Hibernate注解

    前言 在Hibernate中我們一般都會使用注解,這樣可以幫助我們大大簡化hbm映射文件的配置。下面我就來為大家詳細介紹。 PO類注解配置 首先肯定是搭建好Hibernate的開發環境啦,我在此也不過多贅述,讀者自行實踐。接著在src目錄下創建一個cn.itheima.domain包,并在該包下創建一個Book實體類,由于Book實體類中寫有注解配置,所以就不用編寫那個映射配置文件啦! 下面我就來...

    猜你喜歡

    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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

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