📄 transactionopera.java
字号:
package test;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @author worldheart
*
*/
public class TransactionOpera {
protected static final Log log = LogFactory.getLog(TransactionOpera.class);
@Transactional
public void updateDB(DataSource ds) {
try{
//借助于Spring提供的DataSourceUtils实用类,
//获得当前事务已经征集的Connection对象
Connection conn = DataSourceUtils.getConnection(ds);
Statement stat = conn.createStatement();
log.info(
stat.executeUpdate(
"update product set name = 'KoiXxx' where productid = 'FI-FW-01'"));
//需要手工关闭Statement,但是我们不能够关闭conn,
//因为当前事务完结时Spring会负责关闭它
stat.close();
//抛出异常,开发者可以去数据库检查当前RDBMS数据是否一致,
//或者可以将如下语句屏蔽掉
throw new RuntimeException("xx");
} catch(SQLException sql){
throw new RuntimeException(sql);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -