Ibatis的配置和使用
一.ibatis配置及使用
1.編寫PO層,persistant object 持久對象,用作資料存儲的持久化對象,一般要實作與資料庫表的映射,友善進行與資料庫的互動。 在這裡,其實就是一些普通Java類。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISM9AnYldnJwAzN9c3PnBnauQ0MlQ0MlcWT4BTaNhHMD1UOVJTW6p1UNlTQzEWbFRFUyZVbKdHMER2d5QUT3dmeM1mSy40MrRVTxMmaORzaUpFdZpmT310VMRTRE9kewMVW3dGVNRXVq5UMVRlTsJ1VNZXQ6xEMChVWrZkMMVnTtxkasd0Y4VTeZ5mVzwkdvR0YwIFSh9CXt92YuM3YltWas5iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
其中,Employee.java的代碼如下:就是類得屬性及其get和set方法
其他的類都按照和上面同樣的方式寫成。
2.編寫dao接口層,資料通路對象(Data Access Object DAO),将與資料庫的互動封裝到DAO的方法之中,這樣,通路資料庫就隻需要操作一個對象的方法就可以完成,對上層屏蔽了實體資料庫的連接配接和互動,實作了将低級别的資料通路邏輯與進階别的業務邏輯分離。
IEmployeeDAO的代碼如下:這裡面,是一些方法接口,具體的業務邏輯要用到怎麼樣的資料操作,這裡就包含相應的方法接口,具體實作,則留在con.test.dao.impl包中進行,進而達到封裝函數具體實作,隻給上層應用流出相應接口的效果。
3.編寫DAO的實作層,該層是對DAO層接口的具體實作
EmployeeDAO.java實作了IEmployeeDAO.java接口,具體代碼為
這裡就包含了對IEmployeeDAO的實作,對其中方法的實作,其中用到了ibatis架構中的sqlClient類,這個類中封裝了大多數的資料庫操作函數包括delete,insert等等,比如說像delete方法,其中又2個參數,第一個就是使用者要執行該操作用到的資料庫查詢語句,這裡是"deleteEmployee",這是在com.test.sqlmap中的Employee.xml中進行定義的,之後會對這個檔案進行進一步說明,這裡隻要清楚你要執行删除操作,那你就要寫相應的SQL語句,而deleteEmployee就是那個SQL語句的id,你通過這個id就可以調用到那個删除SQL語句了;第二個參數是執行該SQL語句所需要的參數,因為我們是按員工編号進行員工删除,是以這裡就要從前台把員工編号傳過來,這樣sqlClient這個ibatis架構自己定義的接口就會為我們執行相應的删除操作了。
其中sqlClient中有很多資料操作函數,這在其API文檔中可以查到:
4.編寫java類與資料庫映射的sqlmap包,這裡面是一些XML檔案,裡面是在DAO實作層中用到的資料庫操作的SQL語句定義。
Employee.xml的代碼如下:
我們還以delete操作為例:
前面在EmployeeDAO.java用到的deleteEmployee就是在這裡定義,這裡定義了這個SQL語句的id為deleEmployee,這樣在其他地方就能通過id調用此SQL語句,parameterClass表示的執行此SQL語句需要傳入的參數類型,因為我們在前面已經制定,通過員工編号進行删除,是以此處的參數類型就是員工編号類型,這在資料庫中定義為varchar,是以在這裡就是String類型。中間這句SQL語句是純SQL語句,這也就是ibatis和hibernate的最大不同,ibatis需要自己編寫SQL語句進行資料庫操作,而hibernate是通過架構已經定義好的方法或者是HQL語言進行資料庫操作,這是一種靈活性的展現,畢竟,你自己寫的SQL語句雖然費時費力,但是自己可以根據具體應用邏輯編寫SQL,更加靈活。
5.編寫sqlMapConfig.xml檔案,這個檔案是ibatis必須的配置檔案,裡面包含了所有領域對象的映射檔案,也就是資料庫表對應的xml檔案,我們在com.test.sqlmap中寫的xml檔案都要在這個配置檔案中進行标明,其中指明了xml檔案的具體路徑。
這個很簡單,我就不再多說了。
6.編寫service接口檔案
這裡和DAO接口一樣,都是一些方法接口
7.編寫service實作檔案
這裡是對service接口檔案的實作
這樣編寫好service檔案,就可以在action中進行使用。