zoukankan      html  css  js  c++  java
  • 36、声明式事务-环境搭建

    36、声明式事务-环境搭建

    1、导入相关依赖

    数据源、数据库驱动、Spring jdbc模块

    • 注意:mysql的驱动要和mysql版本对应哦。
     <dependency>
        <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>
    

    2、TXConfig

    @Configuration
    @ComponentScan("com.hw.springannotation.tx")
    public class TxConfig {
    
        @Bean
        public DataSource dataSource() throws PropertyVetoException {
            ComboPooledDataSource dataSource = new ComboPooledDataSource();
            dataSource.setUser("root");
            dataSource.setPassword("root");
            dataSource.setDriverClass("com.mysql.jdbc.Driver");
            dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
            return dataSource;
        }
    
        @Bean
        public JdbcTemplate jdbcTemplate(DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
    }
    

    3、UserService

    @Service
    public class UserService {
        @Autowired
        private UserDao userDao;
    
        public void insertUser() {
            userDao.insert();
            System.out.println("插入完成...");
            int a = 100 / 0;
        }
    }
    
    

    4、UserDao

    @Repository
    public class UserDao {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public void insert() {
            String sql = "insert into tbl_user(username,age) values(?,?)";
            jdbcTemplate.update(sql, UUID.randomUUID().toString().substring(5, 10), 14);
        }
    }
    

    5、测试用例

    public class Test_TX {
    
        @Test
        public void test() {
            AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(TxConfig.class);
            UserService userService = applicationContext.getBean(UserService.class);
            userService.insertUser();
        }
    
    }
    
    • 不设置事物的情况下,能够成功插入数据,而且抛出异常

  • 相关阅读:
    从原生web组件到框架组件源码(二)
    从原生web组件到框架组件源码(一)
    拖拽滚动视图(一)
    SVG研究之路(一)下
    运算符
    编码
    格式化输出
    循环语句
    条件语句
    Python基础
  • 原文地址:https://www.cnblogs.com/Grand-Jon/p/10061444.html
Copyright © 2011-2022 走看看