写道
ibats不需要javabean靠List<map>实现一对多例子配置
<resultMap id="singleSitePosResult" class="java.util.HashMap">
<result property="siteId" column="siteId" javaType="string" jdbcType="string"/>
<result property="x" column="x" javaType="int" jdbcType="int"/>
<result property="y" column="y" javaType="int" jdbcType="int"/>
</resultMap>
<select id="getSingleSitePos" parameterClass="string" resultMap="singleSitePosResult">
SELECT SiteId,x,y FROM SitePosition WHERE BackgroundId=#backgroundId#
</select>
<resultMap id="allSitePosResult" class="java.util.HashMap">
<result property="backgroundId" column="backgroundId" javaType="string" jdbcType="string"/>
<result property="sitePosMap"javaType="java.util.ArrayList"select="getSingleSitePos"column="BackgroundId"/>
</resultMap>
<select id="getAllSitePos" resultMap="allSitePosResult">SELECT BackgroundId FROM SitePosition</select>
<!--
示例:产品类型
-->
<sqlMap namespace="ProductClass">
<resultMap id="manyResult" class="java.util.HashMap">
<result property="xiaoid" column="xiaoid"/>
<result property="xiaoname" column="xiaoname"/>
<result property="parentid" column="parentid"/>
</resultMap>
<resultMap id="oneResult" class="java.util.HashMap">
<result property="daid" column="daid" />
<result property="daname" column="daname" />
<result property="children" javaType="java.util.ArrayList" select="selectMany" column="daid" />
</resultMap>
<select id="selectOne" resultMap="oneResult">
SELECT JZDL_DM as
daid,JZDL_MC
as daname from DM_JZDL
</select>
<select id="selectMany" resultMap="manyResult" parameterClass="string">
SELECT JZXL_DM as
xiaoid,JZXL_MC as xiaoname,JZDL_DM as parentid
from
DM_JZXL where
JZDL_DM=#daid#
</select>
</sqlMap>
Ibatis版本
iBATIS 三个版本小细节对比
之前受iBATIS 版本问题的打击实在太大, 便决定把iBATIS三个版本的一些改动的地方罗列出来对比一下, 方便以后查阅, 也用于警醒自己.
sqlMapConfig.xml 中的异同.
iBATIS_v1
iBATIS_v2
iBATIS_v3
DOCTYPE
sql-map-config.dtd
sql-map-config-2.dtd
ibatis-3-config.dtd
configuration标签
<sql-map-config>
</sql-map-config>
<sqlMapConfig>
</sqlMapConfig>
<configuration>
</configuration>
sqlMap标签
<sql-map recource../>
<sqlMap recource../>
<mappers>
<mapper recource.. />
</mappers>
sqlMap 映射中的异同
iBATIS_v1
iBATIS_v2
iBATIS_v3
DOCTYPE
sql-map.dtd
sql-map-2.dtd
ibatis-3-mapper.dtd
sqlMap标签
<sql-map>
</sql-map>
<sqlMap>
</sqlMap>
<mapper>
</mapper>
statement标签
<mapped-statement>
</mapped-statement>
<select></select>
<update></update>
<statement></>…
<select></select>
<update></update>
参数表示
#id#
#id#
#{id}
sqlMap API的异同
iBATIS_v1
iBATIS_v2
iBATIS_v3
执行对象
SqlMap
SqlMapClient
SqlSession
得到执行
XMLSqlMapBuilder->
builderSqlMap
SqlMapClientBuilder->
builderSqlMap
SqlSessionFactory->
openSession
执行
excuteQueryForObject
queryForObject..
queryForList…
update…
selectOne…
selectList…
update…
三个版本的部分对比, 暂时完成… 但是, 最近, iBATIS 怎么就变成了 MyBatis … 看了一下官方的文档, 貌似跟iBATIS_v3相差不是很大. 但愿, 以后改版的时候, 文档中可以细心的提醒一下, 新版跟旧版的差别, 或者做干脆\一点, 能够兼容旧的版本就更好了…
<resultMap id="singleSitePosResult" class="java.util.HashMap">
<result property="siteId" column="siteId" javaType="string" jdbcType="string"/>
<result property="x" column="x" javaType="int" jdbcType="int"/>
<result property="y" column="y" javaType="int" jdbcType="int"/>
</resultMap>
<select id="getSingleSitePos" parameterClass="string" resultMap="singleSitePosResult">
SELECT SiteId,x,y FROM SitePosition WHERE BackgroundId=#backgroundId#
</select>
<resultMap id="allSitePosResult" class="java.util.HashMap">
<result property="backgroundId" column="backgroundId" javaType="string" jdbcType="string"/>
<result property="sitePosMap"javaType="java.util.ArrayList"select="getSingleSitePos"column="BackgroundId"/>
</resultMap>
<select id="getAllSitePos" resultMap="allSitePosResult">SELECT BackgroundId FROM SitePosition</select>
<!--
示例:产品类型
-->
<sqlMap namespace="ProductClass">
<resultMap id="manyResult" class="java.util.HashMap">
<result property="xiaoid" column="xiaoid"/>
<result property="xiaoname" column="xiaoname"/>
<result property="parentid" column="parentid"/>
</resultMap>
<resultMap id="oneResult" class="java.util.HashMap">
<result property="daid" column="daid" />
<result property="daname" column="daname" />
<result property="children" javaType="java.util.ArrayList" select="selectMany" column="daid" />
</resultMap>
<select id="selectOne" resultMap="oneResult">
SELECT JZDL_DM as
daid,JZDL_MC
as daname from DM_JZDL
</select>
<select id="selectMany" resultMap="manyResult" parameterClass="string">
SELECT JZXL_DM as
xiaoid,JZXL_MC as xiaoname,JZDL_DM as parentid
from
DM_JZXL where
JZDL_DM=#daid#
</select>
</sqlMap>
Ibatis版本
iBATIS 三个版本小细节对比
之前受iBATIS 版本问题的打击实在太大, 便决定把iBATIS三个版本的一些改动的地方罗列出来对比一下, 方便以后查阅, 也用于警醒自己.
sqlMapConfig.xml 中的异同.
iBATIS_v1
iBATIS_v2
iBATIS_v3
DOCTYPE
sql-map-config.dtd
sql-map-config-2.dtd
ibatis-3-config.dtd
configuration标签
<sql-map-config>
</sql-map-config>
<sqlMapConfig>
</sqlMapConfig>
<configuration>
</configuration>
sqlMap标签
<sql-map recource../>
<sqlMap recource../>
<mappers>
<mapper recource.. />
</mappers>
sqlMap 映射中的异同
iBATIS_v1
iBATIS_v2
iBATIS_v3
DOCTYPE
sql-map.dtd
sql-map-2.dtd
ibatis-3-mapper.dtd
sqlMap标签
<sql-map>
</sql-map>
<sqlMap>
</sqlMap>
<mapper>
</mapper>
statement标签
<mapped-statement>
</mapped-statement>
<select></select>
<update></update>
<statement></>…
<select></select>
<update></update>
参数表示
#id#
#id#
#{id}
sqlMap API的异同
iBATIS_v1
iBATIS_v2
iBATIS_v3
执行对象
SqlMap
SqlMapClient
SqlSession
得到执行
XMLSqlMapBuilder->
builderSqlMap
SqlMapClientBuilder->
builderSqlMap
SqlSessionFactory->
openSession
执行
excuteQueryForObject
queryForObject..
queryForList…
update…
selectOne…
selectList…
update…
三个版本的部分对比, 暂时完成… 但是, 最近, iBATIS 怎么就变成了 MyBatis … 看了一下官方的文档, 貌似跟iBATIS_v3相差不是很大. 但愿, 以后改版的时候, 文档中可以细心的提醒一下, 新版跟旧版的差别, 或者做干脆\一点, 能够兼容旧的版本就更好了…
相关推荐
iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...
Spring与iBATIS的集成 iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...
iBATIS 是一款著名的开源Java持久层框架,它在2005年由Clinton Begin创建,最初命名为Apache MyBatis,后来发展为独立的项目。在本主题中,我们关注的是iBATIS 2.3.4版本的jar包及其源码。 首先,`ibatis-2.3.4.jar...
在IT行业中,数据库操作是必不可少的一部分,而Ibatis作为一款流行的Java持久层框架,它使得SQL与Java代码更好地结合,提供了灵活的数据库操作方式。然而,数据处理时遇到的编码问题,如乱码,常常会给开发者带来...
### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...
Ibatis官方资料大全提供了全面的学习资源,包括ibatis-common.jar、ibatis-Dao.jar和ibatis-sqlmap.jar等核心组件的详细讲解和相关jar文件,是学习和使用Ibatis不可或缺的参考资料。 首先,我们来了解一下ibatis-...
自己写了一个Ibatis入门文件 JDK用的1.4 ibatis用的2.3.0 一定要注意版本问题,不然出现本本不兼容很费劲,我调了一上午,注意一定要用JDK1.4 ibatis2.3.0! 数据库自己建一张简单的表就行了,特别说明 只适合新手...
本项目"ibatis_with_memcached"就是关于如何将Ibatis与Memcached集成,实现高效的数据库缓存策略的实例。 Ibatis是一个基于Java的SQL映射框架,它允许开发者编写SQL语句并与Java对象进行绑定,从而避免了传统的JDBC...
标题:ibatis教程 输入参数详解 描述:ibatis教程 输入参数详解 ibatis快速入门 标签:ibatis list 部分内容:这段部分提供了ibatis用户指南的警告,关于从文档复制代码的问题,以及ibatis的概述、如何开始使用...
在Java开发中,Maven和iBatis是两个非常重要的工具。Maven是一个项目管理和综合工具,它帮助开发者管理依赖、构建项目,并提供了一种标准化的项目结构。而iBatis则是一个SQL映射框架,它将SQL语句与Java代码分离,...
### Ibatis3手册知识点概述 Ibatis3作为一款流行的持久层框架,在软件开发领域具有重要的地位。本篇文章基于“Ibatis3手册 Ibatis3参考手册”的标题及描述,深入解析Ibatis3的核心概念、架构特点以及如何进行实际...
《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...
在本篇文章中,我们将深入探讨如何使用 Java 编程语言结合 iBatis 框架进行 SQL 字符串的动态拼接。通过分析提供的代码片段,我们可以了解到在实际开发过程中,这种动态 SQL 的构建方式非常常见,尤其是在处理复杂的...
在Java Web开发中,Spring和iBatis是两个非常重要的框架。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等特性,而iBatis则是一个优秀的持久层框架,它将SQL语句与Java代码分离,...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...
iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...
**Ibatis 指南** Ibatis 是一个优秀的开源持久层框架,它允许开发者将 SQL 查询与 Java 代码分离,从而避免了传统的 JDBC 编程中的大量模板代码。作为一个轻量级的框架,Ibatis 提供了灵活的映射机制,使得 XML 或...