[JAVAEE]实验05:Spring事务管理

本文详细介绍了Spring中的事务管理,包括Spring JDBC的配置,编程式事务管理和声明式事务管理。编程式事务管理涉及基于底层API和TransactionTemplate的两种方式,而声明式事务管理则利用AOP技术,通过xml配置和@Transactional注解实现事务的自动管理。在使用@Transactional注解时,需要注意异常处理策略,指定回滚的异常类型。
摘要由CSDN通过智能技术生成

1.Spring JDBC

1.1applicationContext.xml内配置好数据库相关信息

 <!-- 指定需要扫描的包(包括子包),使注解生效 -->
   <context:component-scan base-package="com.ch5"/>
   <!-- 配置数据源 -->
   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   		<!-- MySQL数据库驱动 -->
   		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   		<!-- 连接数据库的URL -->
   		<property name="url" value="jdbc:mysql://localhost:3306/springtest?characterEncoding=utf8"/>
   		<!-- 连接数据库的用户名 -->
   		<property name="username" value="root"/>
   		<!-- 连接数据库的密码 -->
   		<property name="password" value="363316495"/>
   </bean>
   <!-- 配置JDBC模板 -->
   <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
   		<property name="dataSource" ref="dataSource"/>
   </bean>

1.2创建实体类MyUser

public class MyUser {
   
	private Integer uid;
	private String uname;
	private String usex;
	public Integer getUid() {
   
		return uid;
	}
	public void setUid(Integer uid) {
   
		this.uid = uid;
	}
	public String getUname() {
   
		return uname;
	}
	public void setUname(String uname) {
   
		this.uname = uname;
	}
	public String getUsex() {
   
		return usex;
	}
	public void setUsex(String usex) {
   
		this.usex = usex;
	}
	public String toString() {
   
		return "myUser [uid=" + uid +", uname=" + uname + ", usex=" + usex + "]";
	}
}

1.3创建数据库访问层TestDao
接口类:

package ch5;
import java.util.List;
public interface TestDao {
   
	public int update(String sql, Object[] param);
	public List<MyUser> query(String sql, Object[] param);
}
实现类:
@Repository("testDao")
public class TestDaoImpl implements TestDao{
   
	//自动装配
	 @Autowired
	//使用配置文件中的JDBC(相当于依赖注入了)
	private JdbcTemplate jdbcTemplate;
	
	 //更新方法
	@Override
	public int update(String sql, Object[] param) {
   
		return jdbcTemplate.update(sql, param);
	}
	
	//查询方法
	@Override
	public List<MyUser> query(String sql, Object[] param) {
   
		RowMapper<MyUser> rowMapper = new BeanPropertyRowMapper<MyUser>(MyUser.class);
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值