![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IBATIS
文章平均质量分 68
iteye_11009
这个作者很懒,什么都没留下…
展开
-
标签详细说明带实例代码1
1.元素 元素用于配置和优化SqlMapClient实例的各选项。元素本身及其所有的属性都是可选的。下表列出了元素支持的属性及其功能: maxRequests:同时执行SQL语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是maxTransactions(参见以下)的10倍,并且总是大于maxSessi...原创 2010-10-13 13:48:19 · 89 阅读 · 0 评论 -
ibatis新手上路
概念: iBATIS , 又是一个O/R Mapping的解决方案(例如 hibernate的ORM 也是解决方案之一.) 网上很多人便将其称为ORM , 但是用过的人, 应该都会觉得并不恰当. 与其称之为一个OR Mapping , 倒不如叫它SQL Mapping... iBATIS 的特点是小巧, 简单. 但是要求需要熟悉SQL , 不像hibernate那样, 可以让你一句sql ...原创 2011-05-20 11:16:24 · 78 阅读 · 0 评论 -
标签详细说明带实例代码11
动态Mapped Statement 直接使用JDBC一个非常普遍的问题是动态SQL。使用参数值、参数本身和数据列都是动态的SQL,通常非常困难。典型的解决方法是,使用一系列if-else条件语句和一连串讨厌的字符串连接。对于这个问题,SQL Map API使用和mapped statement非常相似的结构,提供了较为优雅的方法。这里是一个简单的例子: select * from ACC...原创 2010-10-13 15:00:55 · 59 阅读 · 0 评论 -
标签详细说明带实例代码12
上面的方法将查询结果集放在List对象中,而queryForMap()方法将结果集放在一个Map对象中,这个Map对象用一个传入参数keyProperty作为key值。例如,要读入一批Employee对象,您可以将这些Employee对象放在一个用employeeNumber属性作为key值的Map对象中。Map对象的值可以是整个Employee对象,也可以是Employee对象的另一个属性,属性...原创 2010-10-13 14:59:36 · 82 阅读 · 0 评论 -
标签详细说明带实例代码10
storeSqlMap.commitTransaction(); orderSqlMap.commitTransaction(); } finally { try { storeSqlMap.endTransaction() } finally { orderSqlMap.endTransaction() } } 上面的例子中,假设我们通过两个SqlMapClient来使用两个不...原创 2010-10-13 14:36:55 · 72 阅读 · 0 评论 -
标签详细说明带实例代码9
自动的事务处理 虽然极力推荐使用明确划分的事务范围,在简单需求(通常使只读)的情况下,可以使用简化的语法。如果您没有使用startTransaction(),commitTransation()和rollbackTransaction()方法来明确地划分事务范围,事务将会自动执行。例如: private Reader reader = new Resources.getResourceAsRe...原创 2010-10-13 14:36:03 · 83 阅读 · 0 评论 -
标签详细说明带实例代码8
简单的动态SQL元素 虽然动态Mapped Statement API功能强大,但有时仅需要一小部分的动态SQL即可。为此,SQL statement和statement都可以包含简单的动态SQL元素,以帮助实现动态的order by子句,动态的查询字段或SQL语句的其他动态部分。简单动态SQL元素的概念有点象inline parameter的映射,但使用了稍微不同的语法。考虑下面的例子: ...原创 2010-10-13 14:34:30 · 87 阅读 · 0 评论 -
标签详细说明带实例代码7
动态Mapped Statement 直接使用JDBC一个非常普遍的问题是动态SQL。使用参数值、参数本身和数据列都是动态的SQL,通常非常困难。典型的解决方法是,使用一系列if-else条件语句和一连串讨厌的字符串连接。对于这个问题,SQL Map API使用和mapped statement非常相似的结构,提供了较为优雅的方法。这里是一个简单的例子: select * from ACC...原创 2010-10-13 14:32:09 · 56 阅读 · 0 评论 -
标签详细说明带实例代码6
缓存Mapped Statement结果集 通过在查询statement中指定cacheModel属性,可以缓存Mapped Statement中得到的查询结果。Cache model是在SQL Map XML文件中定义的可配置缓存模式,可以使用cacheModel元素来配置。例子如下: 上面的cache model创建了一个名为“product-cache”的缓存...原创 2010-10-13 14:29:07 · 77 阅读 · 0 评论 -
标签详细说明带实例代码5
复杂类型集合的属性Result Map还可以装入代表复杂类型对象集合(List)的属性,用以表示在数据库中相互关系为多对多或一对多的数据。拥有集合属性的类作为“一”的一方,而在集合中的对象作为“多”的一方。用来装入对象集合的mapped statement和上面例子一样。唯一的不同是,让SQL Map架构装入复杂类型集合(List)的业务对象的属性必须是java.util.List或java.ut...原创 2010-10-13 14:27:44 · 74 阅读 · 0 评论 -
标签详细说明带实例代码4
复杂类型属性(即自定义类型的属性)因为mapped statement知道如何装入合适的数据和Java类,通过将resultMap的property和相应的mapped statement联系起来,可以自动地给复杂类型(即用户创建的类)的属性赋值。复杂类型用以表示在数据库中相互关系为一对一,一对多的数据。对于一对多的数据关系,拥有复杂类型属性的类作为“多”的一方,而复杂属性本身则作为“一”的一方。...原创 2010-10-13 14:26:16 · 77 阅读 · 0 评论 -
标签详细说明带实例代码3
select属性select用于描述对象之间的关系,并自动地装入复杂类型(即用户定义的类型)属性的数据。属性select的值必须是另外一个mapped statement元素的名称。在同一个result元素中定义的数据库字段(column属性)以及property属性,将被传给相关的mapped statement作为参数。因此,字段的数据类型必须是SQL Map支持的简单数据类型。关于简单数据类...原创 2010-10-13 14:22:38 · 59 阅读 · 0 评论 -
标签详细说明带实例代码2
1.property属性property的值是mapped statement返回结果对象的Java Bean属性的名称(get方法)。 2.column属性column的值是ResultSet中字段的名称,该字段赋值给names属性指定的Java Bean属性。同一字段可以多次使用。注意,可能某些JDBC Driver(例如,JDBC/ODBC桥)不允许多次读取同一字段。 3.columnI...原创 2010-10-13 14:12:04 · 94 阅读 · 0 评论 -
Hibernate VS iBATIS
Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS 是另外一种优秀的SQL mapping框架,当前版本是2.0。目前属于apache的一个子项目了。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。 Hibernate对数据...原创 2011-05-20 14:17:05 · 64 阅读 · 0 评论