Spring中的事务管理
1.声明式事务:AOP(不影响原有代码)
UserMapper接口:
package com.kakafa.mapper;
import com.kakafa.pojo.User;
import java.util.List;
public interface UserMapper {
public List selectUser();
//添加一个用户
public int addUser(User user);
//通过id删除一个用户
public int deleteUser(int id);
}
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
insert into mybatistest.user(id,name,pwd)
values(#{id},#{name},#{pwd});
delete from mybatistest.user where id=#{id};
UserMapperImpl:
package com.kakafa.mapper;
import com.kakafa.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;
public class UserMapperImpl implements UserMapper{
//我们所有操作都使用sqlSession来执行,现在都使用sqlSessionTemplate,因为习惯用sqlSession,所以这里命名为sqlSession
private SqlSessionTemplate sqlSession;
//需要有set方法才能够在spring的bean注册中注入sqlSession的值-通过set方法注入:
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
@Override
public List selectUser() {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List users = mapper.selectUser();
return users;
}
@Override
public int addUser(User user) {
return sqlSession.getMapper(UserMapper.class).addUser(user);
}
@Override
public int deleteUser(int id) {
return sqlSession.getMapper(UserMapper.class).deleteUser(id);
}
}
spring-dao.xml:注意头文件里要加入aop和tx的东西
<?xml version="1.0" encoding="UTF-8"?>