項目框架主要是spring,持久層框架沒有用mybtis,用的是spring 的jdbc;
業(yè)務(wù)需求:給應(yīng)用添加領(lǐng)域(一個領(lǐng)域包含多個應(yīng)用,一個應(yīng)用可能屬于多個領(lǐng)域,一般而言一個應(yīng)用只屬于一個領(lǐng)域),要求是給應(yīng)用添加領(lǐng)域的時候,先將該應(yīng)用已有的領(lǐng)域都刪除,之后再將選中的領(lǐng)域添加到數(shù)據(jù)庫;
為了減少準備工作,我利用了以前的代碼和數(shù)據(jù)建模,那么就成了:添加person的時候先刪除已存在name為新添加person的name的person,再添加新person,說直白點就是:添加name為zhangsan的person,那么先刪除數(shù)據(jù)庫中name為zhangsan的所有person信息,然后再將新的zhangsan的person信息添加到數(shù)據(jù)庫中;
環(huán)境搭建過程我就不寫了,完整代碼會以附件形式上傳;
注意:druid連接池一般而言,jdbc設(shè)置成自動提交,不設(shè)置的話,默認也是自動提交(有興趣的朋友可以去看下druid連接池的源碼)
jdbcTemplate自動提交
先來驗證下,當(dāng)前jdbcTempalte是否是自動提交的,如何驗證了,我可以在jdbcTemplate執(zhí)行完之后拋出一個異常,代碼如下
public int deleteOnePerson(String name) { int count = jdbcTemplate.update(DELETE_ONE_PERSON, new Object[]{name}); // jdbcTemplate執(zhí)行完成 count = count / 0; // 拋出RuntimeException return count; }
沒有配置事務(wù)
View Code
&nbs