1、#和$两者含义不同
#:会进行预编译,而且进行类型匹配;
$:不进行数据类型匹配。
示例:变量name的类型是string, 值是"张三"
    $name$ = 张三
    #name# ='张三'
因此使用$就会报错,若要使用$的话,需要修改为’$name$’;

2、两者的实现方式不同
2.1)$ 作用相等于是字符串拼接,
select * from users where name= $name$
等效于
StringBuffer sb = newStringBuffer(256);
sb.append("select * from users where name=").append(name);
sb.toString();

2.2)# 作用相当于变量替换
select * from users  where name = #name#
等效于
prepareStement=stmt.createPrepareStement("select * from users where name = ?")
prepareStement.setString(1,'张三');//自动进行java类型和jdbc类型转换

3、#和$使用场景不同
3.1)变量的传递,必须使用#。可以防止sql注入,#是用prepareStement,提示效率
#方式一般用于传入添加/修改的值或查询/删除的where条件
3.2)$只是简单的字符拼接而已,对于非变量部分,那只能使用$,实际上,在很多场合,$也是有很多实际意义的
$方式一般用于传入数据库对象(如传入表名)
例如:
select  * from  $tableName$  对于不同的表执行统一的查询
update  $tableName$ set  name = #name#  每个实体一张表,改变不用实体的状态
特别说明,$只是字符串拼接,所以要特别小心sql注入问题。
3.3)能同时使用#和$的时候,最好用#

最新文章

  1. Android studio 自定义打包apk名
  2. php 用 http post方法传输数据
  3. easy-ui 小白进阶史(一):加载数据,easy-ui显示
  4. Android课程---Activity中保存和恢复用户状态
  5. ExtJS入门教程05,grid的异步加载数据
  6. Main函数参数argc,argv说明
  7. mysql查看日志
  8. Python3 学习第四弹:编码问题(转载)
  9. NeatUpload上传控件在asp.net中的使用
  10. oracle中查找执行效率低下的SQL
  11. 1104. Don’t Ask Woman about Her Age(数论)
  12. SSL协议的握手过程
  13. wordpress开启用户注册
  14. linux为用户配置java环境变量
  15. 003_JS基础_面向对象基础
  16. java之MVC开发模式
  17. UE导航系统详
  18. elasticsearch-HQ 安装与使用
  19. dup2替换
  20. unity3d热更新插件uLua学习整理

热门文章

  1. python opencv:像素操作
  2. ElementUI el-table 表格 行选择框改为单选
  3. 解决前端项目启动时报错:Use // eslint-disable-next-line to ignore the next line.
  4. Hibernate学习(四)
  5. 比较好的IT教程网
  6. 杭电2629 Identity Card
  7. 三年以上php开发经验常见面试题
  8. thinkphp 取消跳转提示
  9. 从npz文件中读取图片并显示的小例子
  10. linear-gradient()的用法