iBatis(另一种映射)

本文分享了一次使用iBatis进行SQL映射的实际经历,详细记录了从初次接触到解决具体问题的过程,特别是解决了SQL语句配置错误的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iBatis是又一个O/R Mapping解决方案,j2ee的O/R方案真是多,和Hibernate相比,iBatis最大的特点就是小巧,上手很快。然后注意到这个配置文件还引用了一个Account.xml,没错,iBatis把每个需要O/R Mapping的Java对象关联到一个xml配置文件,我们需要把一个Account表映射到一个Account类:try { Account accout = (Account)sqlMap.try { Account account = new Account();需要注意的是使用iBatis 2.0和1.0有较大区别,主要体现在配置文件上,iBatis 2.0新增了DAO框架,不需要Spring提供的DAO也能很方便地实现DAO模式。


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("test@test.com");
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”的书的原因,是希望我们在出问题的时候去购买这本书吗???反正这是被欺负够了,自己又没有这个能耐去写这么一个东东。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值