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”的书的原因,是希望我们在出问题的时候去购买这本书吗???反正这是被欺负够了,自己又没有这个能耐去写这么一个东东。
分享到:
相关推荐
一对一映射是iBATIS中处理关联关系的一种方式,它允许你在查询一个实体对象时,同时获取与其关联的另一个实体对象。这种映射通常涉及到主表和从表,主表中的一条记录对应从表中的唯一一条记录。 **配置一对一映射:...
在Java应用程序中,iBATIS 提供了一种方便的方式来将数据库操作与业务逻辑解耦,使得开发者能够更加灵活地控制SQL查询。这篇博客可能深入探讨了iBATIS如何实现从数据库结果集到Java对象的映射,以及如何处理一对多、...
iBATIS 的另一个强大特性是支持动态 SQL,可以在 SQL 映射文件中使用条件判断、循环等逻辑。例如: ```xml != null"> AND USER_NAME = #{name} ``` 这段代码表示如果 `name` 参数不为空,则在 SQL 中添加相应的 ...
在数据库关系模型中,一对多关系是最常见的一种,例如一个部门可以有多名员工,这种关系在编程中就需要通过映射来体现。 **iBatis 一对多映射的核心概念:** 1. **Mapper XML 文件**:在 iBatis 中,数据访问的...
3. **参数映射**:Ibatis支持两种参数映射方式,一种是基于注解的@Param,另一种是基于Map的key-value形式,这两种方式都可以将Java对象的属性值映射到SQL的参数上。 4. **结果集映射**:Ibatis通过`<resultMap>`...
ResultMap是iBatis中的另一个重要概念,它用于定义结果映射关系。用户可以使用ResultMap来定义结果映射关系,以便将数据库查询结果映射到强类型数据对象中。 7.iBatis的应用场景 iBatis可以应用于各种数据访问场景...
7. **参数映射与结果映射**:Ibatis提供了两种方式映射参数和结果,一种是基于注解的,另一种是基于XML的。它可以自动将Java对象的属性与数据库字段进行匹配,减少了手动转换的工作。 8. **事务管理**:Ibatis支持...
ibatis,作为一种“半自动化”的ORM(Object-Relational Mapping,对象关系映射)框架,不同于Hibernate和Apache OJB等提供全面数据库封装的“一站式”ORM解决方案,它更侧重于SQL与POJO(Plain Old Java Object,...
事务管理是iBATIS的另一个关键部分。它可以基于JDBC进行本地事务管理,也可以使用JTA(Java Transaction API)实现分布式事务。此外,iBATIS还支持外部事务管理,允许应用自定义事务边界。 缓存(Cache)功能是...
其次,iBATIS的另一个关键特性是它的数据源配置。数据源定义了如何连接到数据库,包括数据库驱动类、URL、用户名和密码等信息。在文档中,你可能会看到如何在iBATIS的配置文件中设置这些参数,以便正确地连接到你的...
Hibernate 是另一种ORM(对象关系映射)框架,它允许开发者用Java对象来操作数据库记录,而无需直接编写SQL。这里可能是为了提供对比,让你了解不同数据访问框架的使用场景。 4. **MyBatis**:MyBatis 是iBatis的...
事务管理是iBATIS中的另一个关键点。iBATIS提供了两种事务管理方式:JDBC事务管理和Spring事务管理。JDBC事务管理适用于简单的应用,而与Spring集成后,iBATIS可以利用Spring的声明式事务管理,提供更高级别的事务...
**iBatis框架**:iBatis是另一种轻量级的ORM框架,它与Hibernate不同,不完全是一个全自动的解决方案。iBatis允许开发者编写自定义的SQL,提供更多的控制权。在SSH2框架中,iBatis可以与Spring集成,通过...
Ibatis的另一个亮点是它的结果映射机制,它允许开发者将查询结果自动映射到Java对象,大大简化了数据访问层的代码。通过ResultMap,我们可以定义字段与Java属性之间的映射关系,包括一对一、一对多、多对一等复杂...
IBatis.Net,也称为MyBatis.Net,是.NET平台上的一款轻量级持久层框架,它提供了一种灵活的数据库访问方式,避免了传统ADO.NET操作中的大量繁琐代码。这个框架的核心是数据映射器(DataMapper),它允许开发者将SQL...
另一种方法是通过实现`SqlMapClientCallback`接口并使用`SqlMapClientTemplate`的`execute`方法来执行批处理。这种方式更加面向对象,代码更简洁。下面是一个示例: ```java public void batchAddExamlog2(List...
另一种则是通过JNDI获取数据源。这两种方式都是为了后续配置iBatis的SqlMapClient做准备。 ```xml <!-- 数据源配置 --> <!-- JNDI数据源配置 --> <value>java:/oracle/payment ``` #### 配置...
- **iBatis**则更偏向于SQL映射,它不强制要求对象-关系映射,而是提供了一种灵活的方式来处理SQL语句及其参数。这意味着开发者可以自由地编写SQL语句,并将其与Java对象进行关联。 iBatis和Hibernate之间的主要...
iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...