Spring jdbc 以及事务管理

一,Springjdbc的一些常用类

Spring jdbc 以及事务管理_第1张图片
spring与jdbc.png

这里有两个常用的类jdbcDaoSupport和jdbcTemplate

1,jdbcDaoSupport提供了jdbcTemplate和DataSource的setter方法,可以通过它们获取到jdbcTemplate和DataSource
2,在jdbcTemplate里面封装了基本的对数据库的一些操作
3,如果想要操作数据库,直接继承jdbcDaoSupport和jdbcTemplate这两个类或者直接 使用di方式直接注入这两个类

二,Spring的事务控制

1,事务架构

Spring jdbc 以及事务管理_第2张图片
spring的事务的结构.png
PlatformTransactionManager是事务处理的核心接口,规定了事务开启,提交和回滚,AbstractPlatformTransactionManager是实现PlatformTransactionManager的抽象类,已经实现了事务的提交(commit)和回滚(rollback),对于采取不同的数据技术,事务开启的方式是不一样的。

2,事务的状态以及定义

事务定义


Spring jdbc 以及事务管理_第3张图片
image.png

事务状态


Spring jdbc 以及事务管理_第4张图片
image.png
在事务控制中又涉及到TransactionStatus和TransactionDefinition两个类。一个描述事务的状态信息(是否为新的事务,事务是否完成),另外一个描述事务的传播属性(解决事务的嵌套问题)和事务的隔离机制以及是否只读

3,实例操作

dao层以及实现

//dao
package com.fiberhome.spring.jdbc.dao;

public interface PersonDao {
  public void savePerson(String sql);

}
//daoImpl
package com.fiberhome.spring.jdbc.dao;

import org.springframework.jdbc.core.support.JdbcDaoSupport;

public class PersonDaoImpl extends JdbcDaoSupport implements PersonDao  {
   
  @Override
  public void savePerson(String sql) {
   this.getJdbcTemplate().execute(sql);
  }

}

service层以及实现

//service
package com.fiberhome.spring.jdbc.service;

public interface PersonService {
public void savePerson();
}
//serviceImpl
package com.fiberhome.spring.jdbc.service;

import com.fiberhome.spring.jdbc.dao.PersonDao;

public class PersonServiceImpl implements PersonService{

  private PersonDao dao;
  public void setDao(PersonDao dao) {
    this.dao = dao;
  }
  public void savePerson() {
    
    dao.savePerson("INSERT INTO ist_library_user (NAME ) VALUES('xixi')");
    int a=1/0;
     dao.savePerson("INSERT INTO ist_library_user (NAME ) VALUES('xixi')");
  }

}

xml配置文件




    
        
             classpath:jdbc.properties
        
    

    
        
        
        
        

    


    
        
            
        

    

    
        
            
        
    
    
    
    
    
        
            
        
    
    
    
    

        

            

        
    
    
        
        

    


你可能感兴趣的:(Spring jdbc 以及事务管理)