ibatis官方提示文檔中的錯(cuò)誤
ibatis,***次看到你的時(shí)候,我非常的喜歡你,真的是非常喜歡你,因?yàn)槟汶m然不是大家閏秀,但是絕對(duì)稱得上是小家碧玉,物別是里面可以靈活應(yīng)用的SQL語句,可以讓我隨心所欲的操作,那個(gè)時(shí)候,我就對(duì)你是一見鐘情了。于是趕緊從ibatis官方網(wǎng)站上把所需要的文檔全部下載回來,看了一下挺簡單,并按要求把例子的內(nèi)容導(dǎo)入到了JDEVELOPER里面,這里就不例出來了,需要的朋友我想早就看過了。然后就著手自己寫一個(gè)測試?yán)樱缦拢?/P>
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("test@test.com");
SimpleExample.insertAccount(account);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
運(yùn)行的時(shí)候,總是要報(bào)錯(cuò),說什么SQL語出錯(cuò)誤,我的老天,我這可是從ibatis官方弄來的,沒有一點(diǎn)點(diǎn)違約,剛開始還以為是自己那里做錯(cuò)了,可是翻譯了網(wǎng)上N多個(gè)例子,也是這樣的,可心里就在納悶,為什么別人都是可以通過,而我的就通不過呢?老天不會(huì)總是這么對(duì)不起我吧。昨天把頭都弄大了,確實(shí)沒有辦法,因?yàn)檫@個(gè)東西也確實(shí)是***次接觸,真的是“牛吃藍(lán)瓜,不知道從何著手”;把問題貼到論壇上去,理都沒有人去理的,難道沒有一個(gè)人遇到過這樣的問題,還是因?yàn)檫@個(gè)問題大家早就發(fā)現(xiàn)了,沒法只有帶著郁悶的心情回去睡覺了。
今天晚上又是花了幾個(gè)小時(shí),終于想想試試查尋看能不能通過,示例如下:
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();
}
}
}
沒得問題的,可以通過,并且可以查尋出結(jié)果,這就說明ibatis官方各方面的配置如數(shù)據(jù)源及JDBC都是正確了的,那么肯定是插入的某個(gè)地方出問題了,不是提示說SQL語句出問題了嗎,那就去看看,當(dāng)我去打開Account.xml文件查看到插入部份的時(shí)候,如下圖:
請(qǐng)仔細(xì)看一下,是不是在ACC_EMIAL的后面沒有括號(hào),于是我把括號(hào)加上,一試,萬事OK。
測試是通過了,心里面也有幾分感嘆,我不知道ibatis官方是否真的是這個(gè)示例當(dāng)成了回事,還是因?yàn)樗厦嬗幸槐久麨椤癷batis in action”的書的原因,是希望我們在出問題的時(shí)候去購買這本書嗎???反正這是被欺負(fù)夠了,自己又沒有這個(gè)能耐去寫這么一個(gè)東東。