国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Hibernate【與Spring整合】

chadLi / 1107人閱讀

摘要:常用的配置屬性加載映射文件映射到文件夾加載映射文件映射到具體位置我們推薦的就是使用這一種,就可以少了的配置文件了。

前言

前面已經學習了如何使用Spring與Struts2進行整合,本博文主要講解如何使用Spring對Hibernate進行整合

Spring和Hibernate整合的關鍵點:

SessionFactory對象交給Spring來創建

Hibernate的事務交給Spring進行管理

Spring和Hibernate整合步驟 引入jar包

連接池/數據庫驅動包

Hibernate相關jar

Spring 核心包(5個)

Spring aop 包(4個)

spring-orm-3.2.5.RELEASE.jar 【spring對hibernate的支持】

spring-tx-3.2.5.RELEASE.jar 【事務相關】

配置文件

hibernate.cfg.xml

bean.xml

bean.xml




hibernate.cfg.xml


    
    

        
        com.mysql.jdbc.Driver
        jdbc:mysql:///zhongfucheng
        root
        root
        
        org.hibernate.dialect.MySQL5Dialect


        
        
        true
        
        true
        
        create

    
搭建配置環境測試

User

package bb;

/**
 * Created by ozc on 2017/5/15.
 */
public class User {

    private String name;
    private String password;
    private int id;

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "name="" + name + """ +
                ", password="" + password + """ +
                "}";
    }
}

IUser接口

public interface IUser {
    void save();
}

UserDao

public class UserDao implements IUser {

    @Override
    public void save() {

    }

}

userService

public class UserService {
    
    private UserDao userDao;

    public void save() {
        userDao.save();
    }
}
測試Spring環境

首先,我們為userDao、userService使用Spring來創建對象,以及添加對象的依賴關系,看看Spring的環境是否成功

創建UserDao實例--->@Repository

@Repository
public class UserDao implements IUser {

    @Override
    public void save() {

    }

}

創建userService實例,并注入userDao屬性


@Service
public class UserService {

    @Autowired
    private UserDao userDao;

    public void save() {
        userDao.save();
    }
}

在Spring配置文件中使用注解掃描器





    

測試:成功得到userService對象,并且userService對象含有userDao屬性的值

public class Test2 {

    @Test
    public void test33() {
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml");


        UserService userService = (UserService) ac.getBean("userService");
        System.out.println(userService);
    }
}

測試Hibernate環境

映射配置文件






    
        
            
        
        
        
    

主配置文件加載映射文件

        

創建SessionFactory,Session

@Repository
public class UserDao implements IUser {

    @Override
    public void save(User user) {

        //得到SessionFactory
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

        //得到Session
        Session session = sessionFactory.openSession();
        session.beginTransaction();

        session.save(user);
        
        session.getTransaction().commit();
        session.close();
    }

}

測試:

public class Test2 {

    @Test
    public void test33() {
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml");


        UserService userService = (UserService) ac.getBean("userService");
        userService.save(new User());

    }
}

使用Spring創建SessionFactory對象

Spring與Hibernate整合的關鍵點之一就是使用Spring來創建SessionFactory對象。其中又有三種方式來創建SessionFactory

直接加載hibernate主配置文件
    
    
        
        
        
    

那么在userDao中就不用我們自己手動來創建SessionFactory對象了。

@Repository
public class UserDao implements IUser {


    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public void save(User user) {

        //得到Session
        Session session = sessionFactory.openSession();
        session.beginTransaction();

        session.save(user);

        session.getTransaction().commit();
        session.close();
    }

}

連接池交給Spring管理

我們知道Hibernate對C3P0的連接池支持度比不上Spring,因此我們可以使用Spring的連接池。因此我們加載Hibernate的主配置文件又使用Spring的數據庫連接池

也就是說,一部分配置在hibernate.cfg.xml,一部分配置在Spring文件中

    
    
        
        
        
        
        
        
        
        
    


    
    

        
        
        
    

配置文件全寫Spring中【推薦】

上面我們一部分是加載Hibernate的主配置文件,一部分是使用Spring配置文件的數據庫連接池...這樣不好...我們應該在Spring中對其進行同一的管理!





    
    
        
        
        
        
        
        
        
        
    


    
    

        

        
        
            
                org.hibernate.dialect.MySQLDialect
                true
                update
            
        

        


        
        
            
                bb/User.hbm.xml
            
        

    

    

我們推薦的就是使用這一種,就可以少了Hibernate的配置文件了。并且容易統一管理。

Spring管理事務

到目前為止,我們是使用Hibernate編程式事務控制管理,Spring與Hibernate整合另一個關鍵就是使用Spring對Hibernate進行事務管理

    
    

        
        
    

    
    

值得注意的是:Spring與Hibernate整合,Spring只支持線程的Session,并且不用我們手動配置

userDao

@Repository
public class UserDao implements IUser {


    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public void save(User user) {
        sessionFactory.getCurrentSession().save(user);
    }

}

userService添加@Transactional注解就是為Hibernate添加了事務管理了。

@Service
@Transactional
public class UserService {

    @Autowired
    private UserDao userDao;

    public void save(User user) {
        userDao.save(user);
    }
}
如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關注微信公眾號:Java3y

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68737.html

相關文章

  • ssh(Spring+Struts2+hibernate)整合

    摘要:需求整合框架做一個保存用戶的業務,業務比較簡單,重在框架整合。 需求:整合ssh框架做一個保存用戶的業務,業務比較簡單,重在ssh框架整合。創建數據庫和表 CREATE DATABASE ssh01; USE DATABASE; 表由Hibernate創建,可以看配置是否成功 一:導入jar包 Hibernate需要jar Hibernate基本jar mysql驅動 ...

    tulayang 評論0 收藏0
  • 納稅服務系統【總結】

    摘要:要是使用到日歷的話,我們想到使用這個日歷類上面僅僅是我個人總結的要點,如果有錯誤的地方還請大家給我指正。 納稅服務系統總結 納稅服務系統是我第一個做得比較大的項目(不同于javaWeb小項目),該項目系統來源于傳智Java32期,十天的視頻課程(想要視頻的同學關注我的公眾號就可以直接獲取了) 我跟著練習一步一步完成需求,才發覺原來Java是這樣用來做網站的,Java有那么多的類庫,頁面...

    ispring 評論0 收藏0
  • 慕課網_《基于SSH實現員工管理系統之框架整合篇》學習總結

    時間:2017年08月16日星期三說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學源碼:無學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 課程目錄 1.ssh知識點回顧 2.搭建ssm開發環境 3.struts2整合spring 4.spring整合hibernate 5.案例:使用ssh框架開發...

    icattlecoder 評論0 收藏0
  • springboot整合hibernate和jpa

    摘要:首先我得先提出幾個創建的項目的做法一來創建創建之后就能用或來導入這個項目了二先創建項目,在上安裝相關的包例如只需引入即可實現熱部署下面兩個引入為了操作數據庫包添 首先我得先提出幾個創建springboot的項目的做法: 一、http://start.spring.io/來創建: showImg(https://segmentfault.com/img/bV3jC1?w=1914&h=8...

    smallStone 評論0 收藏0
  • Java3y文章目錄導航

    摘要:前言由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 前言 由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導航哦~想要獲取最新原創的技術文章歡迎關注我的公眾號:Java3y Java3y文章目錄導航 Java基礎 泛型就這么簡單 注解就這么簡單 Druid數據庫連接池...

    KevinYan 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<