相关文章推荐
空虚的西瓜  ·  Error querying ...·  2 月前    · 
个性的火柴  ·  Qt ...·  1 年前    · 
会开车的小马驹  ·  android ...·  1 年前    · 
逆袭的打火机  ·  java - spring cloud - ...·  1 年前    · 
where province=#{province} and #{type} = 1

这个type,是这个表的列名,但是不固定,具体是哪一列,需要看前面传递过来的是什么,当时用上面的这个语句,怎么都不行,后来,猛然想起来,在mybatis中,#和$的使用时有区别的,弄清了这个区别,就知道这个语句该怎么写了

1.#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,order by "id",这当然会报错。
2.$传入的数据直接生成在sql里,如$field$传入的是id,则sql语句生成是这样,order by id, 这就对了。
3.#可以避免sql注入。因为传递的东西,被当做字符串拼接到了sql语句中,而$是在向数据库发出sql之前去拼接好sql再提交给数据库执行。
4.一般情况下推荐使用#,能用#就别用$,因为这样安全。
5.但是一些特殊情况下必须要用${},比如:
动态拼接sql中动态组成排序字段, 要通过${}将排序字段传入sql中。
动态拼接sql中动态组成表名,要通过${}将表名传入sql中。
动态拼接sql中动态传入列名,要通过${}将列名传入sql中。
因此,上面的sql,根据上面的第五条,简单修改,即可。

select entName,entCode,province 
from ent_table 
where province=#{province} 
and ${type} = 1

其他示例:

    SELECT count(b.id) from ent a,interview b
    where 1 = 1
    and a.delete_flag = 0
    and a.plat_from = #{platFrom}
    and a.${layoutType} = #{layoutId}
    and a.eid = b.eid
    and DATE_FORMAT(b.create_time,'%Y') = #{year}
接上文:T- SQL 动态 查询(3)——静态 SQL 前言: 前面说了很多关于 动态 查询的内容,本文将介绍使用 动态 SQL 解决 动态 查询的一些方法。 为什么使用 动态 SQL : 在很多项目中, 动态 SQL 被广泛使用甚至滥用,很多时候, 动态 SQL 又确实是解决很多需求的首选方法。但是如果不合理地使用,会导致性能问题及无法维护。 动态 SQL 尤其自己的优缺点,是否使用需要进行评估分析: 动态 SQL 优点: 动态 SQL 提供了强大的扩 一、知识点1.1 视图的概念,建立及删除视图是虚拟的表,包含 动态 检索数据的查询,使用视图方便 SQL 查询语句的保存,简化数据处理,自动更新,不需要保存数据,节省空间注意:视图的基础上在建视图会降低效率,不能往视图中插入数据,唯一命名,不可以与其它视图及表名称一致视图的创建CREATE VIEW 视图名称(<视图 列名 1>,<视图 列名 2>,......) AS <SELEC... 该插件提供了一个函数来调用完成表和列,以及一个方便的函数来轻松切换提供建议的数据库。 您需要在插入模式下映射完整的函数。 这是一个例子。 <Leader>sc将为列完成, <Leader>st将为表完成。 inoremap <Leader> sc <C> = SQL Complete ( " column " ) <CR> inoremap <Leader> st <C> = SQL Complete ( " table " ) <CR> 默认数据库 您可以通过在.vimrc设置变量suggest_db来设置默认数据库,如下所示: let g: suggest_db = " p sql -U Jrock e 获取DOM高度:要在钩子mounted里面dom结构生成后去获取dom的高度,宽度,修改样式等操作(参照生命周期钩子mounted语法:https://cn.vuejs.org/v2/api/#mounted)mounted() {let h = window.innerHeight || document.documentElement.clientHeight || document.body... --在 动态 sql 中,无论exec还是exec sp_execute sql ,都不允许使用参数形式的表名和 列名 ,--你可以使用变量或者在存储过程中使用存储过程参数声明部分的参数,而不是直接使用--exec sp_execute sql 参数声明部分的参数 --典型的错误代码(there is no wrong with grammer,but not any row is returned)declar... 动态 sql 语句我们经常会用的到,下面为您介绍的是使用 动态 sql 语句自定义 列名 的实现方法,如果您之前遇到过类似的问题,不妨一看。 CREATE PROCEDURE POQUERY1 (  @SupplyID varchar(30)        --参数  )  AS  DECLARE @no nvarchar(100)  DECLARE @seq nvarchar(100)  D 通过markdown实现自定义 动态 sql 拼接,实现通过 sql 配置完成接口开发发布整体框架还是依据0行代码写服务的框架不清楚的看一下前几篇文章,这里我们为了满足复杂查询利用 动态 sql 拼接的方式去实现具体实现如下:首先来看一下自定义的markdown sql 文件:test.md文件真实内容如下:第一步配置 sql 文件:首先我们根据“;”定义每一条 sql 的结尾,用“===”分割 sql 的标记名称和具体执行的... set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo/******************************************************************************************------------------------------------------------------------------...