一个很简单的Spring JDBC 编程式事务的简单实现,代码逻辑较简单,希望有可能帮助初学的同学。本例使用mysql8.0,在db3数据库下有个student表,内含两个属性,id与name。
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
public class JdbcTemplateTest {
public static void main(String[] args) { //加载配置文件
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("Beans.xml");
//获取jdbcTemplate实例
JdbcTemplate jdbcTemplate=(JdbcTemplate) applicationContext.getBean("jdbcTemplate");
TransactionDefinition def = new DefaultTransactionDefinition(); // 定义事务属性
DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) applicationContext.getBean("transactionManager");
TransactionStatus status = transactionManager.getTransaction(def);
try{
jdbcTemplate.execute("insert into students values(2,\"zhangsan\");");
jdbcTemplate.execute("insert into students values(2,\"zhangsan\");");
//id为primary key,不能重复,否则会报错,事务回滚,也就是这个人不能加入数据库
transactionManager.commit(status);
}
catch(Exception e){
transactionManager.rollback(status);
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!-- 1.配置数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 1.1.数据库驱动 -->
<property name="driverClassName"
value="com.mysql.cj.jdbc.Driver"></property>
<!-- 1.2.连接数据库的url -->
<property name="url"
value="jdbc:mysql://localhost:3306/db3?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"></property>
<!-- 1.3.连接数据库的用户名 -->
<property name="username" value="root"></property>
<!-- 1.4.连接数据库的密码 -->
<property name="password" value="123456"></property>
</bean>
<!-- 2配置JDBC模板 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 默认必须使用数据源 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 创建事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
来源:CSDN
作者:小白Francis学JAVA
链接:https://blog.csdn.net/qq_30117591/article/details/104336159