hibernate學習之一 框架配置

hibernate 框架java

  一、hibernate框架應用在javaee三層結構中的dao層框架mysql

  二、好處就是不須要寫複雜jdbc代碼,不須要sql語句實現sql

  三、是開源的輕量級框架數據庫

  hibernate使用orm思想對數據庫進行crud操做, orm - object relational mapping, 對象關係映射,讓實體類和數據庫表一一對應,實體類屬性與表裏的字段一一對應。session

對數據庫表進行操做,不須要對數據庫操做,直接對實體類進行操做便可完成。它與jdbc的對比關係以下圖app

 

MAVEN導包配置框架

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.2.10.Final</version>
</dependency>

搭建hibernate步驟ui

  第一步,建立實體類this

public class LoginInfo {
        //對應數據庫的主鍵,值惟一
        private String id;
        private String username;
        private String password;

        public String getId() {
                return id;
        }

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

        public String getUsername() {
                return username;
        }

        public void setUsername(String username) {
                this.username = username;
        }

        public String getPassword() {
                return password;
        }

        public void setPassword(String password) {
                this.password = password;
        }
}

  注意:若是實體類對應的表不存在,hibernate能夠自動建立數據表url

  第二步 配置數據表與實體類的映射關係

  新建一個配置文件loginInfo.hbm.xml. 文件名字與位置沒有固定,建議放在實體類所在包,名字樣式爲xxx.hbm.xml.在開始配置前,首先引入約束,約束文件爲   http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd   點擊下載MappingDTD文件

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

   本例子中logininfo.hbm.xml內容以下

<?xml version="1.0" encoding="UTF-8"?>
<!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 : 實體類名
                table  :表名-->
        <class name="com.blueto.hibernate.LoginInfo" table="t_logininfo">
                <id name="id" column="id">
                        <!--主鍵 自動增加-->
                        <!--<generator class="native"></generator>-->
                        <!--uuid方式生成主鍵-->
                        <generator class="uuid"></generator>
                </id>
                <!--name 實體類屬性, column 表字段名-->
                <property name="username"  column="username"></property>
                <property name="password" column="password"></property>
        </class>

</hibernate-mapping>

  第三步 建立hibernate的核心配置文件

  與mapping文件不同,該配置文件名與位置必須固定,文件名只能爲hibernate.cfg.xml, 而且只能放在目錄src下面

  配置分三小步驟

    1)首先引入約束 http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd, 點擊下載DTD

    2)配置數據庫信息

    3)配置hibernate信息

    4)把映射配置文件(上一節的xxx.hbm.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>
                <!--1) 配置數據庫信息-->
                <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
                <property name="hibernate.connection.url">jdbc:mysql:///t_logininfo</property>
                <property name="hibernate.connection.username">root</property>
                <property name="hibernate.connection.password">123</property>
                <!-- 2)   配置hibernate信息,可選-->
                <!--輸出底層sql語句-->
                <property name="hibernate.show_sql">true</property>
                <!--輸出sql格式-->
                <property name="hibernate.format_sql">true</property>
                <!--若是沒有表,則建立,有則更新-->
                <property name="hibernate.hbm2ddl.auto">update</property>

                <!--配置數據庫方言-->
                <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
                <!--  3)  把映射配置文件放到核心配置文件中-->
                <mapping resource="com/blueto/hibernate/logininfo.hbm.xml"></mapping>
        </session-factory>
</hibernate-configuration>

  若是從沒有接觸過hibernate, 那怎麼知道里面怎麼配置啊?若是記不住配置內容,能夠打開hibernate.properties文件查看裏面的配置屬性,找到對應的數據庫按照properties裏定義配置就行了。方便理解,上一張它們間的關係圖

   我使用的是mysql數據庫,其餘數據庫配置一樣能夠參考hibernate.properties文件配置(點擊下載hibernate.properties)

  第四步 數據庫的CRUD操做

public class HiberDemo { @Test public void testAdd(){ // step 1 : 加載hibernate核心配置文件
                Configuration cfg = new Configuration(); cfg.configure(); //setp 2 : 建立SessionFactory
                SessionFactory sessionFactory = cfg.buildSessionFactory(); //step 3 : 建立session對象
                Session session = sessionFactory.openSession(); //step 4 開啓事務
                Transaction tx = session.beginTransaction(); //step 5 crud
                LoginInfo loginInfo = new LoginInfo(); loginInfo.setUsername("new name"); //寫入數據表中,若是表不存在,則建立表, // 前提是要在覈心配置文件中配置 : <property name="hibernate.hbm2ddl.auto">update</property>
 session.save(loginInfo); //step 6 提交事務
 tx.commit(); //step 7 關閉資源
 session.close(); sessionFactory.close(); } }
相關文章
相關標籤/搜索