`
kidiaoer
  • 浏览: 822366 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ibaits #和$有什么区别

SQL 
阅读更多
#和$有什么区别,即select   *   from   topic   where   id=#id#和select   *   from   topic   where   id=$id$有区别吗?

还有我要执行这个语句select   *   from   topic   where   boardid   in   (1,2,3),配置文件如下:

这样写会报错:
<select   id= "getLists "   resultMap= "topicListResult "   parameterClass= "topicInfo ">
        select   *   from   topic  
<dynamic   prepend= "where ">
<isNotNull   prepend= "and "   property= "boardid ">
boardid   in   (#boardid#)
</isNotNull>
</dynamic>
</select>

这样写就没事,即用$替换#
<select   id= "getLists "   resultMap= "topicListResult "   parameterClass= "topicInfo ">
        select   *   from   topic  
<dynamic   prepend= "where ">
<isNotNull   prepend= "and "   property= "boardid ">
boardid   in   ($boardid$)
</isNotNull>
</dynamic>
</select>

这是为什么?


用$$   有点宏替换的意思,如下列映射:
<select   id= "users "   resultMap= "user "> select   *   from   a   $name$ </select> ,则在传入参数可以queryForList( "users ",   "where   name= '张三 ' ");
用##则是预编译处理,传入的是什么类型就是什么类型,如下列映射:
<select   id= "users "   resultMap= "user "> select   *   from   a   where   a.name=#name# </select> ,
你在传入参数时可以queryForList( "users ",   "张三 ");则生成的sql语句是select   *   from   a   where   a.name= '张三 '。


#表示参数的方式传入类似于sql语句里的?,$就是简单的字符串替换,用相应的值替换$$里的内容。
分享到:
评论

相关推荐

    ibatis中输入输出各种类型的参数分析及#与$区别

    ### ibatis中输入输出各种类型的参数分析及#与$区别 #### iBatis简介与特点 ...通过对参数类型、`#`与`$`的区别以及`namespace`和`resultMap`的理解,可以帮助开发者更好地利用iBatis框架构建高效稳定的数据库访问层。

    ibatis中 $ 于 # 的 区别

    ### ibatis中 $ 与 # 的区别 在ibatis(现称为MyBatis)框架中,$ 和 # 是两种不同的动态SQL元素标记,用于处理参数传递的问题。它们各自有着独特的功能和应用场景,对于理解这两者的差异是十分重要的,因为这会...

    Ibatis资料ibatai sql map iBATIS使用$和#的一些理解

    在iBATIS中,有两种主要的方式来处理这些参数:使用`$`和`#`。这两种方式在不同的场景下有不同的效果。 首先,让我们来看看如何通过HashMap传递SQL参数。当SQL Map接口只能接受一个参数,但我们需要传递多个参数时...

    iBatis和Hibernate的区别

    ### iBatis与Hibernate的主要区别 #### 一、概述 iBatis与Hibernate都是Java领域内流行的ORM(Object-Relational Mapping,对象关系映射)框架,用于简化Java应用程序与数据库之间的交互。尽管它们有着相似的目标,...

    ibatis和hibernate的区别

    【ibatis和Hibernate的区别】 在Java开发中,ibatis和Hibernate都是常见的对象关系映射(ORM)框架,它们简化了数据库操作,将Java对象与数据库表之间的映射关系抽象出来,使得开发人员可以使用面向对象的方式处理...

    myBatis和ibatis的区别

    通过对ibatis与myBatis之间区别的详细分析,我们可以看到myBatis不仅继承了ibatis的优点,还在很多方面进行了改进和优化,使得其在功能性和易用性上都有了显著提升。对于开发者而言,选择myBatis作为持久层框架可以...

    选用ibatis和hibernate的区别

    在选择Java持久化框架时,Ibatis和Hibernate是两个常用的选择。它们各有特点,适用场景也有所不同。以下是对两者的基本功能、使用步骤以及差异的详细分析: **Hibernate** 是一个全面的对象关系映射(ORM)框架,它...

    ibatis和hibernate的简单介绍

    ### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ...总之,ibatis和Hibernate各有优势,选择哪个取决于项目的具体需求以及团队的技术背景。在实际应用中,企业应综合考虑以上因素,做出最符合自身情况的选择。

    ibatis和mybatis的区别

    在里面总结了ibatis和mybatis的主要区别,包括xml文件等

    ibatis拼接字符串

    虽然 iBatis 在某些方面与 Hibernate 类似,但它们之间的主要区别在于 iBatis 提供了更细粒度的 SQL 控制能力,这使得 iBatis 在复杂查询或性能敏感的应用场景中更具优势。 ### 二、动态 SQL 的概念 在实际应用中...

    ibatis2.rar

    iBATIS是一个优秀的Java持久层框架,它提供了一个SQL映射框架,使开发者能够将SQL语句直接写在配置文件中,与Java代码分离,从而实现了数据访问逻辑和业务逻辑的解耦。"ibatis2.rar"这个压缩包文件包含了关于iBATIS ...

    什么是iBATIS

    **什么是iBATIS** iBATIS 是一个在Java应用程序中持久化数据的开源框架,它为数据库访问提供了一个中间层,使得开发者可以将SQL语句与Java代码分离,从而简化了数据库驱动的应用程序的开发过程。这个框架由Apache ...

    关于Ibatis的jar包

    在提供的压缩包中,有两个关键文件:`最简单的iBatis入门例子.chm`和`Ibatis包`。让我们一一解析它们: 1. **最简单的iBatis入门例子.chm**: 这是一个帮助文件,通常包含一系列关于如何快速入门Ibatis的教程和...

    Ibatis视频下载

    【Ibatis视频教程】是一个非常实用的学习资源,它旨在帮助初学者或有经验的开发者深入理解和掌握Ibatis这一流行的Java持久层框架。Ibatis是由Apache软件基金会维护的一个开源项目,它的核心功能是将SQL语句与Java...

    J2EE iBatis 概述

    #### 二、iBatis与Hibernate的区别 ##### 2.1 ORM实现方式 - **iBatis**:半自动化的ORM实现。iBatis关注于SQL与Java对象之间的映射,而不是像Hibernate那样自动生成SQL。 - **Hibernate**:全自动化ORM实现。...

    最好的ibatis教程实例(内有注释)

    4. **参数映射与结果集映射**:Ibatis提供了强大的参数映射机制,如#{}和${}的区别,以及如何使用Map、POJO、自定义VO等方式传递参数。同时,它还支持自动映射结果集,也可以自定义映射规则。 5. **缓存机制**:...

    iBATIS实战

    5. **参数映射与结果映射**:学习如何将Java对象的属性与SQL语句中的占位符进行映射,以及如何将查询结果自动转换为Java对象,理解#{}和${}的区别。 6. **事务管理**:了解iBATIS如何处理事务,包括手动控制和自动...

Global site tag (gtag.js) - Google Analytics