1. 程式人生 > >IDEA建立Hibernate專案

IDEA建立Hibernate專案

第一步、建立專案

IEAD中的project可以理解成Eclipse中的WorkSpace(工作空間),Module可以理解為Eclipse中的專案
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

建立完成後如下圖:

這裡寫圖片描述

第二步、配置Hibernate環境

1、建立表
Hibernate可以將我們的JavaBean和資料庫的表進行對映,此處使用mysql資料庫,先建立一個數據庫:Hibernate,在建立表:cst_customer,表結構如下:
這裡寫圖片描述

2、建立JavaBean

package com.xiaowen.domain;

public class Customer {

    private Long cust_id;
    private
String cust_name; 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選擇器 @Override public String toString() { return "Customer [cust_id="
+ cust_id + ", cust_name=" + cust_name + "]"; } }

3、建立javabean和表cst_customer對映關係檔案
對映關係關鍵命名規範:*.hbm.xml

在Customer同級目錄下新建Customer.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping> <!--name:實體類名,table:對應資料庫表名--> <class name="com.xiaowen.domain.Customer" table="cst_customer;"> <!-- 配置主鍵對映 --> <!--name:實體類的屬性名,column:資料庫表的欄位名,type:資料型別--> <id name="cust_id" type="java.lang.Integer"> <column name="cust_id"></column> <!-- 設定主鍵生成方式 --> <generator class="native"></generator> </id> <!-- 配置其他屬性 --> <!--name:實體類的屬性名,column:資料庫表的欄位名,type:資料型別--> <property name="cust_name" type="java.lang.String"> <column name="cust_name"></column> </property> <property name="cust_source" type="java.lang.String"> <column name="cust_source"></column> </property> <property name="cust_industry" type="java.lang.String"> <column name="cust_industry"></column> </property> <property name="cust_level" type="java.lang.String"> <column name="cust_level"></column> </property> <property name="cust_linkman" type="java.lang.String"> <column name="cust_linkman"></column> </property> <property name="cust_phone" type="java.lang.String"> <column name="cust_phone"></column> </property> <property name="cust_mobile" type="java.lang.String"> <column name="cust_mobile"></column> </property> </class> </hibernate-mapping>

4、建立hibernate主配置檔案
現將mysql驅動和junit的jar包新增到專案中

命名規範:hibernate.cfg.xml(固定寫法)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>
        <!-- 配置連線資料庫的基本資訊 -->
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>


        <!-- 配置Hibernate的基本資訊 -->
        <!-- hibernate 所使用的資料庫方言 -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- 執行操作時是否在控制檯列印 SQL -->
        <property name="show_sql">true</property>

        <!-- 是否對 SQL 進行格式化 -->
        <property name="format_sql">true</property>

        <!-- 指定是否自動生成資料庫表 -->
        <property name="hbm2ddl.auto">update</property>

        <!-- 新增實體關係對映檔案 -->
        <mapping resource="com/xiaowen/domain/Customer.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

測試類:

package com.xiaowen.domain;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class HibernateTest {
    @Test
    public void test1(){
        Configuration conf=new Configuration();
        conf.configure();
        SessionFactory sessionFactory=conf.buildSessionFactory();
        Session session=sessionFactory.openSession();
        Transaction tx=session.beginTransaction();//開啟事務
        Customer c=new Customer();
        c.setCust_name("小文");
        session.save(c);//執行儲存
        tx.commit();//提交事務
        session.close();
        sessionFactory.close();
    }
}

控制檯列印:
這裡寫圖片描述

資料庫:
這裡寫圖片描述