Spring-事务声明


1,保证了四个原则

UserMapper

package com.miao.mapper;

import com.miao.pojo.User;

import java.util.List;

public interface UserMapper {
    public List selectUser();

    public int addUser(User user);

    public int deleteUser(int id);
}

UserMapperImpl.java

package com.miao.mapper;

import com.miao.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;

import java.util.List;

//第一种Spring操作mybatis的方式
public class UserMapperImpl implements UserMapper{

    //之前操作mybatis都使用sqlSession,现在都使用sqlSessiontemplate

    private SqlSessionTemplate sqlSessionTemplate;
    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
    {
        this.sqlSessionTemplate=sqlSessionTemplate;
    }

    public List selectUser() {
        User user=new User(6,"苗可卓6","15351");
        UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
        mapper.addUser(user);
        mapper.deleteUser(6);

        return mapper.selectUser();
    }

    public int addUser(User user) {

        return sqlSessionTemplate.getMapper(UserMapper.class).addUser(user);
    }

    public int deleteUser(int id) {
        return sqlSessionTemplate.getMapper(UserMapper.class).deleteUser(id);
    }
}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">



    
    
        insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
    
    
        delete from mybatis.user where id=#{id}
    


applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
        https://www.springframework.org/schema/aop/spring-aop.xsd
">
    <import resource="spring-dao.xml"/>

    
    class="com.miao.mapper.UserMapperImpl">
        
    


    
  

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">



    






    
    
        <package name="com.miao.pojo"/>
    




    
    
    

spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
        https://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx
        https://www.springframework.org/schema/tx/spring-tx.xsd
">



    

    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        
        
        
        
    

    
    class="org.mybatis.spring.SqlSessionFactoryBean">
        
        
        
        
    

    
    class="org.mybatis.spring.SqlSessionTemplate">
        
        
    




    
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        
    


    
    
    

    
        
        
        
            
            
            
        
    

    
    
        
        
    

spring-dao.xml是事务配置的重点,包括四个原则性的方法,自动回滚等

test.java

import com.miao.mapper.UserMapper;
import com.miao.pojo.User;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class test {
    @Test
    public void test1()
    {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapper userMapper = context.getBean("userMapper",UserMapper.class);
        List userList = userMapper.selectUser();
        for (User user : userList)
        {
            System.out.println(user);
        }
    }
    @Test
    public void test2()
    {

    }
}

查阅spring-mybatis使用手册学习http://mybatis.org/spring/zh/transactions.html