• 【转】ibatis 中使用select top #pagesize# * from tablename


    ibatis中使用select top #num# * from tableName出现错误。由于初次用ibatis还不知道在它里边拼写SQL语句的一些规则,导致一些自认为很平常的SQL语句,在它这里翻了船。

    select top #number#这种写法是不正确的,原因待查。正确的书写方式是 select top $number$ 。

    下面这段话是在网络里找到的它也没给出具体的解释,只是说这是什么SQL的动态写法,不明所以。

    在iBATIS中,对于top参数,只能用动态SQL方式。如 <select id="getClassLatest" parameterClass="map" resultMap="musicItemMap">    SELECT top $number$ * FROM tbl_music_item where class_id=#classId# order by add_time desc </select>

    #与$的区别

    昨天一个项目中在写ibatis中的sql语句时,order by #field#, 运行时总是报错,后来上网查了查,才知道这里不该用#,而应该用$,随即查了下#与$的区别. 总结如下: 1.#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,order by "id",这当然会报错..
    2.$传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,order by id, 这就对了.
    3.#方式能够很大程度防止sql注入.
    4.$方式无法方式sql注入.
    5.$方式一般用于传入数据库对象.例如传入表名.
    6.一般能用#的就别用$.
    就这么多了.
  • 相关阅读:
    Qt 数据库篇
    js字符串函数(转)
    如何解决IE无法识别html5中的新标签(article、abbr、header等)
    web多页打印问题
    诡异的Spinner级联样式
    discuz x2用户删除了,帖子不能用了,恢复帖子的办法
    创业公司如何招聘优秀工程师
    清除目录下的SVN信息
    .NET 项目SVN 全局排除设置
    编程技术面试的五大要点
  • 原文地址:https://www.cnblogs.com/gates/p/3269987.html
Copyright © 2020-2023  润新知