1. 程式人生 > >初學iBATIS的朋友,如果你不看我這篇文章,你一定後悔,因為它官方文件裡面的示例少一個

初學iBATIS的朋友,如果你不看我這篇文章,你一定後悔,因為它官方文件裡面的示例少一個

               

    iBATIS,第一次看到你的時候,我非常的喜歡你,真的是非常喜歡你,因為你雖然不是大家閏秀,但是絕對稱得上是小家碧玉,物別是裡面可以靈活應用的SQL語句,可以讓我隨心所欲的操作,那個時候,我就對你是一見鍾情了。於是趕緊從你的官方網站上把所需要的文件全部下載回來,看了一下挺簡單,並按要求把例子的內容匯入到了JDEVELOPER裡面,這裡就不例出來了,需要的朋友我想早就看過了。然後就著手自己寫一個測試例子,如下:

(我且已經按規定建立了資料庫,且插入了兩條記錄,可以參看我的第一個iBATIS測試就通不過 裡面記錄了我痛苦的過程) 

package com.mydomain.data;import java.sql.SQLException;import com.mydomain.domain.*;public class Test { public static void main(String[] args) {    try {      Account account=new Account();   account.setId(3);   account.setFirstName("TestFirst");   account.setLastName("testLast");   account.setEmailAddress("

[email protected]");   SimpleExample.insertAccount(account);  } catch (SQLException e) {      e.printStackTrace();  } }}

執行的時候,總是要報錯,說什麼SQL語出錯誤,我的老天,我就是按您的要求做的,沒有一點點違約,剛開始還以為是自己那裡做錯了,可是翻譯了網上N多個例子,也是這樣的,可心裡就在納悶,為什麼別人都是可以通過,而我的就通不過呢?老天不會總是這麼對不起我吧。昨天把頭都弄大了,確實沒有辦法,因為這個東西也確實是第一次接觸,真的是“牛吃藍瓜,不知道從何著手”;把問題貼到論壇上去,理都沒有人去理的,難道沒有一個人遇到過這樣的問題,還是因為這個問題大家早就發現了,沒法只有帶著鬱悶的心情回去睡覺了。

今天晚上又是花了幾個小時,終於想想試試查尋看能不能通過,示例如下:

package com.mydomain.test;import com.mydomain.data.SimpleExample;import com.mydomain.domain.*;public class Test {    public static void main(String[] args) {        Account account = new Account();        try {               int id = 1;            account=SimpleExample.selectAccountById(id);            System.out.println(account.getId());            System.out.println(account.getFirstName());            System.out.println(account.getLastName());            System.out.println(account.getEmailAddress());                    } catch (Exception e) {            e.printStackTrace();        }    }}

沒得問題的,可以通過,並且可以查尋出結果,這就說明各方面的配置如資料來源及JDBC都是正確了的,那麼肯定是插入的某個地方出問題了,不是提示說SQL語句出問題了嗎,那就去看看,當我去開啟Account.xml檔案檢視到插入部份的時候,如下圖:

請仔細看一下,是不是在ACC_EMIAL的後面沒有括號,於是我把括號加上,一試,萬事OK。測試是通過了,心裡面也有幾分感嘆,我不知道iBATIS的示例是否真的是這個示例當成了回事,還是因為它上面有一本名為“iBATIS IN ACTION”的書的原因,是希望我們在出問題的時候去購買這本書嗎???反正這是被欺負夠了,自己又沒有這個能耐去寫這麼一個東東。