事务简介:

事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性。

事务就是一系列的动作,它们被当做一个单独的工作单元。这些动作要么全部完成,要么全部不起作用。

事务的是四个关键属性(ACID):

  1. 原子性(atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。
  2. 一致性(consistency):一旦所有事务动作完成,事务就被提交。数据和资源就处于一种满足业务的一致性状态中。
  3. 隔离性(isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。
  4. 持久性(durablility):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响。通常情况下,事务的结果都被写到持久化存储中。

传统事务与Spring事务管理器:

传统事务:

package com.dx.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class JdbcAPITx {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        DataSource dataSource = (DataSource) ctx.getBean("dataSource");
        Connection connection = null;
        try {
            connection = dataSource.getConnection();
            connection.setAutoCommit(false);

            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select @@version;");
            while (resultSet.next()) {
                String version = resultSet.getString(1);
                System.out.println(version);
            }
            connection.commit();
        } catch (SQLException ex) {
            ex.printStackTrace();
            if (connection != null) {
                try {
                    connection.rollback();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
            throw new RuntimeException(ex);
        } finally {
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
        }
        System.out.println("Complete...");
    }
}
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-27
  • 2022-12-23
  • 2021-04-12
  • 2021-08-21
  • 2022-12-23
猜你喜欢
  • 2018-03-17
  • 2022-12-23
  • 2021-04-11
  • 2021-06-08
  • 2021-05-10
  • 2022-12-23
  • 2021-09-20
相关资源
相似解决方案