Hibernate入門

Hibernate簡(jiǎn)介

  • Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架(ORM),它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架。
  • hibernate可以自動(dòng)生成SQL語句,自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫

總結(jié): Hibernate使程序員通過操作對(duì)象的方式來操作數(shù)據(jù)庫表記錄

了解

ORM對(duì)象關(guān)系映射(Object Relational Mapping):用來把對(duì)象模型表示的對(duì)象映射到基于S Q L 的關(guān)系模型數(shù)據(jù)庫結(jié)構(gòu)中去。

優(yōu)點(diǎn)
  • Hibernate對(duì)JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡(jiǎn)化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼
  • Hibernate是一個(gè)基于jdbc的主流持久化框架,是一個(gè)優(yōu)秀的orm實(shí)現(xiàn),它很大程度的簡(jiǎn)化了dao層編碼工作
  • Hibernate的性能非常好,因?yàn)樗且粋€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持很多關(guān)系型數(shù)據(jù)庫,從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系
簡(jiǎn)單使用
建表語句如下:
    Create database hibernate_day01;
    Use hibernate_day01;
    CREATE TABLE `cst_customer` (
      `cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客戶編號(hào)(主鍵)',
      `cust_name` varchar(32) NOT NULL COMMENT '客戶名稱(公司名稱)',
      `cust_user_id` bigint(32) DEFAULT NULL COMMENT '負(fù)責(zé)人id',
      `cust_create_id` bigint(32) DEFAULT NULL COMMENT '創(chuàng)建人id',
      `cust_source` varchar(32) DEFAULT NULL COMMENT '客戶信息來源',
      `cust_industry` varchar(32) DEFAULT NULL COMMENT '客戶所屬行業(yè)',
      `cust_level` varchar(32) DEFAULT NULL COMMENT '客戶級(jí)別',
      `cust_linkman` varchar(64) DEFAULT NULL COMMENT '聯(lián)系人',
      `cust_phone` varchar(64) DEFAULT NULL COMMENT '固定電話',
      `cust_mobile` varchar(16) DEFAULT NULL COMMENT '移動(dòng)電話',
      PRIMARY KEY (`cust_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
  • 第三步:搭建Hibernate的開發(fā)環(huán)境
 創(chuàng)建WEB工程,引入Hibernate開發(fā)所需要的jar包
    * MySQL的驅(qū)動(dòng)jar包  (eg:mysql-connector-java-5.1.7-bin.jar)
    * Hibernate開發(fā)需要的jar包(eg:hibernate-release-5.0.7.Final/lib/required/所有jar包)
    * 日志jar包(eg:log4j/所有jar包)
  • 第四步:編寫JavaBean實(shí)體類
 public class Customer {
        private Long cust_id;
        private String cust_name;
        private Long cust_user_id;
        private Long cust_create_id;
        private String cust_source;
        private String cust_industry;
        private String cust_level;
        private String cust_linkman;
        private String cust_phone;
        private String cust_mobile;
        // 省略get和set方法
    }
  • 第五步:創(chuàng)建類與表結(jié)構(gòu)的映射
1. 在src目錄下,創(chuàng)建名稱為hibernate.cfg.xml的配置文件
2. 在XML中引入DTD約束
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
3. 打開:hibernate-release-5.0.7.Final/project/etc/hibernate.properties,可以查看具體的配置信息 
    * 必須配置的4大參數(shù)                 
        #hibernate.connection.driver_class com.mysql.jdbc.Driver
        #hibernate.connection.url jdbc:mysql:///test
        #hibernate.connection.username gavin
        #hibernate.connection.password
    * 數(shù)據(jù)庫的方言(必須配置的)
        #hibernate.dialect org.hibernate.dialect.MySQLDialect

    * 可選的配置
        #hibernate.show_sql true
        #hibernate.format_sql true
        #hibernate.hbm2ddl.auto update

    * 引入映射配置文件(一定要注意,要引入映射文件,框架需要加載映射文件)
        * <mapping resource="com/itheima/domain/Customer.hbm.xml"/>             

4. 具體的配置如下
    <?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">root</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

            <mapping resource="com/itheima/domain/Customer.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>
  • 第七步:編寫Hibernate入門代碼
1. 具體的代碼如下
    /**
     * 測(cè)試保存客戶
     */
    @Test
    public void testSave(){
        // 先加載配置文件
        Configuration config = new Configuration();
        // 默認(rèn)加載src目錄下的配置文件
        config.configure();
        // 創(chuàng)建SessionFactory對(duì)象
        SessionFactory factory = config.buildSessionFactory();
        // 創(chuàng)建session對(duì)象
        Session session = factory.openSession();
        // 開啟事務(wù)
        Transaction tr = session.beginTransaction();
        // 編寫保存代碼
        Customer c = new Customer();
        // c.setCust_id(cust_id);   已經(jīng)自動(dòng)遞增
        c.setCust_name("測(cè)試名稱");
        c.setCust_mobile("110");
        // 保存客戶
        session.save(c);
        // 提交事務(wù)
        tr.commit();
        // 釋放資源
        session.close();
        factory.close();
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容