zoukankan      html  css  js  c++  java
  • Ibatis基础知识:#与$的差别

    背景

    	Ibatis是一个轻量级、非侵入式的持久层框架,适用于范围较广、较轻便……当然,不管J2EE中哪一个持久层框架,都会基于JDBC(不细究JNDI方式)。我们在SqlMap中编写SQL,利用各种SqlMap标签处理业务逻辑,利用參数标记传递參数。
    	在实际开发过程中,弄明确#号$号的差别非常重要,以下我们就来分析一下这两个SqlMap參数标记。

    參数标记

    #号方式

    	解析以#号标记的參数时。Ibatis直接利用JDBC提供的參数标记(?号),将内存中的參数传递给数据库。这时,我们需要保证Java对象參数的数据类型。与数据库字段的參数类型相匹配。

    长处:自适应数据类型。防注入式攻击 缺点:受JDBC參数标记限制,仅仅能用于Where条件、Case...When语句


    $号方式

    	解析以$号标记的參数时,Ibatis将Java对象參数以字符串方式进行替换,相当于直接写在SQL语句里。
    	长处:灵活简便;不受JDBC參数标记限制。可用于随意SQL语句位置
    	缺点:须要注意数据类型,也就是自己加入单引號。须要防范注入式攻击

    小结

    	这两种參数标记相辅相成,为了解决不同问题而生,我们会用对、用好。

  • 相关阅读:
    第五次作业之例行报告
    欢迎来怼—第三次Scrum会议
    例行报告
    探路者 Alpha阶段中间产物
    第六次作业—例行报告
    第五次作业—例行报告
    第四次作业—单元测试
    第四次作业—例行报告
    第四次作业—结对编程 四则运算
    第四次作业—1.代码规范
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6738081.html
Copyright © 2011-2022 走看看