程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> spring4整合hibernate5.1

spring4整合hibernate5.1

編輯:JAVA綜合教程

spring4整合hibernate5.1


在另一篇文章hibernate5(2)初入門配置實例中,我們針對hibernate5.1版本的嶄新引導配置方法,完成了對數據庫的的插入實例操作,在本節內容中,我們開始引入spring4,完成spring4與hibernate5.1的整合工作,像數據庫中插入一條記錄。在後面學習hibernate中,我們都會使用spring來管理我們的Bean容器。

1. 導入spring4所需jar包

我們推薦使用maven來管理項目,下面是maven中的spring整合hibernate完整配置。


    UTF-8
    5.1.0.Final
    
    4.0.2.RELEASE


    
        junit
        junit
        4.10
        test
    
    
        org.slf4j
        slf4j-api
        1.7.5
    
    
        org.slf4j
        slf4j-log4j12
        1.7.5
        runtime
    
    
        log4j
        log4j
        1.2.17
        runtime
    
    
        mysql
        mysql-connector-java
        5.1.21
    
    
        cglib
        cglib
        2.2.2
    
    
    
        commons-dbcp
        commons-dbcp
        1.2.2
    
    
    
        org.hibernate
        hibernate-core
        ${org.hibernate-version}
    
    
        org.hibernate
        hibernate-validator
        ${org.hibernate-version}
    
    
    
        org.springframework
        spring-core
        ${spring.version}
    
    
        org.springframework
        spring-web
        ${spring.version}
    
    
        org.springframework
        spring-orm
        ${spring.version}
    
    
        org.springframework
        spring-tx
        ${spring.version}
    

    
        org.springframework
        spring-jdbc
        ${spring.version}
    

    
        org.springframework
        spring-webmvc
        ${spring.version}
    
    
        org.springframework
        spring-aop
        ${spring.version}
    

    
        org.springframework
        spring-context-support
        ${spring.version}
    

    
        org.springframework
        spring-test
        ${spring.version}
    
    
    
    
        javax.servlet
        javax.servlet-api
        3.1.0
        provided
    
    
        org.apache.commons
        commons-dbcp2
        2.0
    
    
        commons-logging
        commons-logging
        1.1.1
    

在這裡,我們順便引入了springMVC相關jar包,在我們的後續學習測試中可能會用到,現在暫時不用理會

2. 編寫spring容器文件

在上一節中,我們的數據庫、hibernate的相關配置都在hibernate.cfg.xml文件中完整,使用spring後,這些統統交給spring來進行管理。spring完整實例配置文件如下




     
        
        
        
        
        
        
        
        
        
        
    
    
    
        
            
        
        
            
                
                org.hibernate.dialect.MySQL5Dialect
                none
                
                update
                true
                
                thread
                
                
            
        
        
    

關於spring的配置學習,可參考我另一博客專欄《Spring研磨分析》。

3. 編寫測試實體類

測試實體類與我們上一篇文章實例一樣。

package com.zeng.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity//聲明當前類為hibernate映射到數據庫中的實體類
@Table(name = "t_user")//聲明在數據庫中自動生成的表名為t_user
public class User {
    @Id//聲明此列為主鍵
    @GeneratedValue(strategy = GenerationType.AUTO)//根據不同數據庫自動選擇合適的id生成方案,這裡使用mysql,為遞增型
    private Integer id;
    private String name;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

4. 編寫測試方法

@Test
public void test2(){
    //使用此方法獲取並初始化我們的spring容器,注意pring-datasource.xml必須存放在類路徑的根目錄下。
    ApplicationContext ac = new ClassPathXmlApplicationContext("spring-datasource.xml");
    //從spring容器中獲取我們的會話工廠實例,裡面已完成好各個屬性的配置工作
    SessionFactory sessionFactory = (SessionFactory) ac.getBean("sessionFactory");

    //下面開始我們的數據庫操作
    Session session = sessionFactory.openSession();//從會話工廠獲取一個session
    Transaction transaction = session.beginTransaction();//開啟一個新的事務
    User user = new User();
    user.setName("hello spring");
    session.save(user);
    transaction.commit();//提交事務
}

運行測試文件,看到打印信息:
Hibernate: insert into t_user (name) values (?)
說明我們的插入操作已完成,查看數據,會看到一條新的記錄。

至此,我們輕松地完成了spring與hibernate的整合工作,從下一節開始,我們以快速入門為目的,先介紹hibernate的各類使用方法,在結合實例熟悉hibernate的基本使用後,我們再深入開展對hibernate的分析學習。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved