1、加载资源
DriverManagerDataSource dataSource = JdbcTemplateUtil.getDataSource("driverClassName", "url", "username", "password");
JdbcTemplate jdbcTemplate = JdbcTemplateUtil.getJdbcTemplate(dataSource);
2、执行查询sql
jdbcTemplate.queryForList(sql);
3、事务管理
DataSourceTransactionManager transactionManager = JdbcTemplateUtil.getTransactionManager(dataSource);
TransactionStatus status = JdbcTemplateUtil.getTransactionStatus(transactionManager,
TransactionDefinition.PROPAGATION_REQUIRED);
String sql = "insert into db(id1,id2) values(?,?)";
try {
//初始化事务
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
// 这个方法设定更新记录数,通常saveList里面存放的都是我们要更新的,所以返回list.size();
public int getBatchSize() {
return saveList.size();
}
public void setValues(PreparedStatement ps, int i) throws SQLException {
Map<String, Object> map = (Map<String, Object>) saveList.get(i);
//根据sql问号顺序
ps.setString(1, StringUtils.isEmpty(map);
ps.setString(2, StringUtils.isEmpty(data);
}
});
//提交事务
transactionManager.commit(status);
} catch (Exception e) {
// 出现异常,回滚事务,以免出现脏数据,数据不完整的问题
transactionManager.rollback(status);
log.info(MessageFormat.format("入库操作异常。数据为:[{0}]", e.toString()));
e.printStackTrace();
}
做过一些项目,以前没想过总结。特此总结一下,希望能帮助需要帮助的人同学,如有描述不准确的,恳请指正,谢谢。