1. 程式人生 > >Java之Spring配置事務

Java之Spring配置事務

Spring事務

Spring中事務的管理就是通過AOP將事務的程式碼進行抽取

XML配置

第一步 建立c3p0連線池
將sessionFactory中的資料庫相關屬性替換為c3p0

<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    <property name="jdbcUrl" value="jdbc:mysql:///MyDB"
></property> <property name="user" value="root"></property> <property name="password" value="123456"></property> </bean>

第二步 建立事務管理物件

<bean name="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
    <!-- 注入會話工廠 -->
<property name="sessionFactory" ref="sessionFactory"></property> </bean>

第三步 設定會話策略

<tx:advice id="advice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="insert*" read-only="false"/>
        <tx:method name="select*"
read-only="true"/> <tx:method name="update*" read-only="false"/> <tx:method name="delete*" read-only="false"/> </tx:attributes> </tx:advice>

第四步 織入

<aop:config>
    <aop:pointcut expression="execution(* com.lanou.dao.impl.*.*(..))" id="point"/>
    <aop:advisor advice-ref="advice" pointcut-ref="point"/>
</aop:config>

註解配置

前兩步和註解一樣
第三步 啟動AOP事務註解

<tx:annotation-driven/>

第四步 添加註解

@Transactional
public class UserDaoImpl extends HibernateDaoSupport implements UserDao

SSH操作資料庫(HibernateDaoSupport)

為了節省程式碼 Spring提供模板類用於dao層操作資料庫
封裝了常用功能:獲取session 執行查詢等...
在SSH中 只要進行CRUD就繼承HibernateDaoSupport 它能幫我們管理session
注意:別忘記注入sessionFactory

實現步驟:
    1.直接將Dao實現類繼承自 HibernateDaoSupport類
    2.通過呼叫父類的getHibernateTemplate獲取模板物件
    3.面向物件的  save delete update get
    4.使用hql語句/使用離線查詢

使用HQL例項

public List<User> selectAllUser() {
    // 演示如何使用HQL
    return getHibernateTemplate().execute(new HibernateCallback<List<User>>() {

        // 將CRUD的操作放到這個方法中 模板物件會自動呼叫
        @Override
        public List<User> doInHibernate(Session session) throws HibernateException {
            String hql = "from User";
            Query query = session.createQuery(hql);
            List<User> list = query.list();
            return list;
        }
    });
}

離線查詢例項

public User selectUserByName(String name) {
    // 離線查詢物件
    DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
    // 新增查詢條件
    criteria.add(Restrictions.eq("name", name));
    List<User> list = (List<User>) getHibernateTemplate().findByCriteria(criteria);
    if (list != null && list.size() > 0) {
        return list.get(0);
    }
    return null;
}

相關推薦

JavaSpring配置事務

Spring事務 Spring中事務的管理就是通過AOP將事務的程式碼進行抽取 XML配置 第一步 建立c3p0連線池 將sessionFactory中的資料庫相關屬性替換為c3p0 <bean name="dataSource" cla

javaSpring事務回滾和Ehcache配置

弄了一大早,終於配好了事務,事務的掃描包配好,Ehcache就是切面的問題,一切問題也迎刃而解。。。 一、Spring事務回滾 1、applicationContext.xml中配置 <!--spring 掃包 @Service .....

javaSpring學習之前的一個小demo

服務 err const 對象 color void del () 添加 寫這個小demo呢,是為了在學習Spring之前,練習一下傳統的model2開發模式; 為了簡化流程,這裏省略了利用servlet來獲取前臺數據。 采用直接new出來的對象來交給程序處理,然後執行

javaSpring裝配Bean(手動裝配、自動裝配、註解裝配)

fault tran 常見 成員 如果 on() base 反轉 tor 在上一篇控制反轉中我們看到了依靠一個Bean文件來實現對代碼的控制,可謂十分便捷,再也不用去實例化對象了,2333~~~ 1.手動裝配 1 <bean id="todo" class="

javaSpring(AOP)前奏-動態代理設計模式(上)

對象 .cn 分享圖片 賦值 alt his 編程習慣 輸出 style 我們常常會遇到這樣的事,項目經理讓你為一個功能類再加一個功能A,然後你加班為這個類加上了功能A; 過了兩天又來了新需求,再在A功能後面加上一個新功能B,你加班寫好了這個功能B,加在了A後面;又過

(轉)javaSpring(IOC)註解裝配Bean詳解

pos work 多個 public pre tor not 註解裝配 creat 在這裏我們要詳細說明一下利用Annotation-註解來裝配Bean。 因為如果你學會了註解,你就再也不願意去手動配置xml文件了,下面就看看Annotation的魅力所在吧。 先

spring配置事務管理為什麼用aop:advisor

1  事務配置有aop:aspect和aop:advisor兩種方式,但是在spring的事務管理的配置中會用aop:advisor配置,而不是aop:aspect   2  aop:aspect可以有多個pointcut,只能以類和方法作為引數.而aop:advisor只能有一個pointcu

ssm整合配置spring配置

  下面我們就需要看一下spring的基本配置了,spring的配置是一個和業務相關的配置,比如,資料來源,事務的控制等操作, 1,首先我們先配置資料來源     2,,因為這個配置和業務邏輯有不能分離的關係,所以我們還必須配置一個掃描器 ,來操作掃描業務的檔案

Spring配置事務中的 transactionAttributes 各屬性含義及XML配置

                transactionAttributes 屬性:PROPAGATION事務傳播行為型別說明PROPAGATION_REQUIRED如果當前沒有事務,就新建一個事務,如果已經存在一個事務中,加入到這個事務中。這是最常見的選擇。PROPAGATION_SUPPORTS支援當前事務

Spring配置事務中@Transactional各個屬性定義

Spring中的@Transactional比較重要的一些屬性,比如 Propagation(事務傳播屬性),Isolation(事務隔離級別),Rollback Rules(事務回滾規則,預設情況是RunTimeException的時候回滾,即unchecked exc

Spring配置事務,Junit單元測試報錯"Failed to load ApplicationContext"

問題: Junit單元測試程式碼如下: package cn.muke.spring.demo2; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; imp

spring配置事務管理器,事務配置

<!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasou

Spring配置事務

<?xml version="1.0" encoding="UTF-8"?> <!-- 定義該文件是xml文件 該xml文件是1.0版本 該xml文件使用的是UTF-8的字元編碼格式 --> <beans xmlns="http://www.

學習《spring 3.x企業應用開發實戰》Spring事務管理

1、資料庫事務基礎知識 1.1、資料庫事務的概念 (1)資料庫事物的4個特性(ACID): 原子性(Atomic):表示組成一個事務的多個數據庫操作是一個不可分割的原子單元,所有的操作要麼全部成功,要麼全部失敗。一致性(Consistency):事務操作成功之後,資料庫所

JavaSpring Boot詳解

文章大綱 一、Spring Boot 概述二、Spring Boot 入門案例三、Spring Boot核心功能程式碼實戰四、專案原始碼與資料下載五、參考文章   一、Spring Boot 概述 1. 什麼是 Spring Boot   

JavaSpring Cloud概念介紹

文章大綱 一、理解微服務二、Spring Cloud知識介紹三、參考資料下載四、參考文章   一、理解微服務   我們通過軟體架構演進過程來理解什麼是微服務,軟體架構的發展經歷了從單體結構、垂直架構、SOA架構到微服務架構的過程。 1. 單

Java配置分離Spring遠程配置

after time 格式 json key 文件 ins execution 規範 訪問我的博客 前言 集群應用的配置文件如果寫在項目的 resources 目錄下面,當遇到需要修改某一個配置值時,需要將集群的所有應用的配置信息進行修改,並且將機密的配置信息比如數據庫賬號

複習spring基礎(三)——Spring事務管理—配置AOP事務(XML和註解方式)

事務 事務邏輯上的一組操作,組成這組操作的各個邏輯單元,要麼一起成功,要麼一起失敗 事務的特性 原子性 :強調事務的不可分割. 一致性 :事務的執行的前後資料的完整性保持一致. 隔離性 :一個事務執行的過程中,不應該受到其他事務的干擾. 永續性 :事務一旦結束

Java+xml配置方式實現Spring資料事務(程式設計式事務

一、用Java配置的方式 1、實體類: Role  public class Role { private int id; private String roleName; private String note; @Override

Spring-Example01SpringJava配置方式

1.原始碼地址 https://gitee.com/gaoxinfu/demo-spring/tree/master/demo-spring-example-01 2.詳細說明 Java配置是Spring4.x推薦的配置方式,可以完全替代xml配置。 2.1. @Config