成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iBATIS事務處理淺析

開發 后端
iBATIS事務處理是什么內容呢?你對它是不是很熟悉呢?那么本文將會給你介紹iBATIS事務處理相關的信息,希望對你有所幫助。

iBATIS事務處理這部分是和Dao緊密相聯的。

我們在使用Dao時,如以下代碼,先插入新記錄,再進行更新:

  1. personDao.insertPerson (person); // Starts transaction  
  2. person.setLastName("Begin");  
  3. personDao.updatePerson (person); // Starts a new transaction 

因為沒有顯式地啟動事務,iBatis會認為這是兩次事務,分別從連接池中取兩次Connectio。

我們所寫的Dao子類(繼承自com.ibatis.dao.client.template.SqlMapDaoTemplate)的每一個Dao方法已經默認為一個事務(通過動態代理)。

而在業務層,應該有一個類來統管Dao子類的事務,iBatis是通過DaoManager類來作這件事的,如下:

DaoManager provides access to all DAOs it manages and also allows transactions to be committed and ended (possibly rolled back)

眾Dao子類由DaoManager產生,如:

  1. DaoManager daoManager = DaoManagerBuilder.buildDaoManager(reader);  
  2.  
  3. UserDao userDao = (UserDao) daoManager.getDao(UserDao.class); 

UserDao是用戶自己定義的接口,獲得的其實是在dao.xml中指定的相對應的 SqlMapDao實現類,從而實現了松藕合。在良好的分層設計中,

iBATIS事務處理之業務層(service包)只需要知道Dao接口,而不去關心其具體怎么實現。

如果顯式地聲明事務處理語句,如下:

  1. try {  
  2. daoManager.startTransaction();  
  3. personDao.insertPerson (person);   
  4. person.setLastName("Begin");  
  5. personDao.updatePerson(person);   
  6. otherDao.doSomething(other);  
  7. ...  
  8. daoManager.commitTransaction();  
  9. finally {  
  10. daoManager.endTransaction();  

這樣就保持了原子性,整體為一個事務,要么全部執行成功,否則回滾。

現在唯一的問題就是,dao層的事務是否已經放棄,否則產生事務嵌套問題對性能會有影響

當然,iBatis 完全可以這么做:建一個聲明式接口:IService,再使用動態代理,將用戶自己的Serivce子類通過動態代理自動包上事務處理的代碼,默 認每一個業務方法為一個事務。

大師的心如果能輕易揣測,就是不大師了:),估計大師認為這樣屬于過度設計,他認為把這種靈活性交給用戶是合適的,相當多的service 方法只調用一個Dao方法,例如CRUD操作。

再補充一下,iBatis中對事務的處理是可配置的,最常用的Type是"JDBC",也可以聲明為"JTA"或"EXTERNAL".

iBATIS事務處理相關的介紹就到這里,是不是對iBATIS事務處理有了一定的了解呢?

【編輯推薦】

  1. iBATIS操作Blob與Clob淺析
  2. iBATIS讀寫CLOB數據淺析
  3. iBATIS操作CLOB字段實戰淺析
  4. iBATIS for Eclipse設置淺析
  5. iBATIS的自動代碼生成工具Abator在Eclipse的應用
責任編輯:仲衡 來源: 王朝網絡
相關推薦

2009-09-14 19:55:03

LINQ事務處理

2011-04-27 15:55:16

2009-07-09 18:15:42

JDBC事務處理

2009-11-13 17:01:07

ADO.NET事務處理

2010-04-13 15:44:00

Oracle與SqlS

2014-01-22 13:37:53

2010-01-04 13:06:50

ADO.NET事務

2022-06-22 05:42:32

數據庫事務處理分析查詢

2009-07-20 18:00:16

iBATIS DAO事

2009-04-15 17:03:15

OracleSQL Server事務處理

2010-05-17 14:59:05

MySQL事務處理

2022-06-13 10:42:21

分布式事務數據庫

2009-11-04 15:05:45

ADO.NET事務

2017-04-10 13:30:47

Redis數據庫命令

2011-04-27 16:09:48

SQL ServerSSIS

2010-01-13 14:13:24

VB.NET事務處理

2014-02-11 09:07:31

2011-05-18 08:34:45

javaJDBC

2011-03-15 10:22:42

SQL Server 聯機事務處理

2009-06-16 11:42:00

JDBC事務處理JavaBean
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产亚洲一区二区三区在线 | 成人羞羞国产免费视频 | 亚洲一av | 国产一区影院 | 精品亚洲一区二区 | 午夜影院在线免费观看视频 | 91精品国产综合久久婷婷香蕉 | 亚洲精品久久久 | 日韩一区二区三区在线播放 | 亚洲欧美日韩一区二区 | 国产在线精品一区二区三区 | 国产亚洲成av人片在线观看桃 | 日本视频免费 | 天堂一区 | 国产综合精品一区二区三区 | 欧美成人一区二免费视频软件 | 国产高清精品一区二区三区 | 久久久久久久久精 | 中文字幕在线视频精品 | 欧美日韩在线不卡 | 国产91丝袜在线播放 | 亚洲国产成人在线视频 | 在线日韩欧美 | 成人不卡视频 | 中文字幕av在线 | 少妇诱惑av | 欧美一区二区在线免费观看 | 夜夜草导航 | 在线色网站 | 美女国产精品 | 欧美精品影院 | 免费观看a级毛片在线播放 黄网站免费入口 | 午夜免费观看网站 | 国产精品视频导航 | 久久性色| 欧美日韩专区 | 国产资源在线播放 | www.午夜| 三级在线免费观看 | 国产在线一区二区三区 | 国产 日韩 欧美 制服 另类 |