1 $符

在java学习中我们首次接触到$符是在学习标识符的时候,然后是前端中jquery库中的$符,接着便是后端中的$符了。

1.1 $第一种用法

        用于定义java标识符。

1.2 JQuery库中的$符

1.2.1 介绍

        在jquery中,“$”是jQuery的简称,是jquery库提供的一个函数,是“选取”的意思($是jQuery的别称,也就是 $是jQuery的对象,所有在用到 $的地方都可以使用JQuery来代替);“$()”函数可以根据括号里的参数进行查找和选择html文档中的元素,括号内不仅可以是ID,也可以是各类选择器。

 例1:

        $("a") = JQuery(a)    用CSS选择器构造了一个jQuery对象,并且它选择了”所有的”<a/>标签

例2:

        $.name(),$.get(),$.ajax()   代表jQuery这个对象的方法

例3:不同选择器下代码不一样,但是效果相同

//元素选择器 

$(document).ready(function(){

   $(“div1”).click(function(){

      $(“a”).hide();

    });

});

//id选择器

$(“#p”).hide();

//class选择器 

$(“.p”).hide();

1.2.2 作用 

1、作为jQuery包装器,利用选择器来选择DOM元素(这个也是最强大的功能)

如:$(“table tr:nth-child(even)”)

2、实用工具函数,作为几个通用的实用工具函数的命名空间的前缀

如:$.trim(someString)

3、文档就绪处理程序,相当于$(document).ready(…)

如:$(function(){…}); 里面的函数会在DOM树加载完之后执行

4、创建DOM元素

如:$("how are you"?)

5、扩展jQuery

如:$.fn.disable = function(){…}

6、使用jQuery和其他库

如:Prototype库也是使用符号,JQuery提供noConflict函数避免冲突, jQuery.noConflict(); 把符号还原到非jQuery库定义的含义。

1.3 后端中的$符

1. MyBatis处理 ${ } 占位符,使用的 JDBC 对象是 Statement 对象,而其值是字符串拼接的方式,容易造成sql注入,有安全风险,而且执行sql的效率也比#{}低;

2. ${ } 占位符中的数据是原模原样的,不会区分数据类型,所以${ } 占位符常用作表名或列名,前提需要保证数据安全时使用 ${ },而且$符是直接显示原本内容在sql语句中,不做任何修改。

2 #符

2.1 #符做注释

        Java中的#号是一个特殊的符号,它可以用来表示注释。注释是一种源代码的辅助说明,它不会被编译器或解释器执行,而是用来提供给程序员的一些提示或说明。
        在Java中,#号可以用来表示单行注释,也可以用来表示多行注释。单行注释是以#号开头,后面跟着注释内容,注释内容可以是任何文本,例如:#这是一行注释。多行注释是以/*开头,以*/结尾,中间可以包含任意多行文本,例如:/*这是一段多行注释*/。
        注释的作用是可以让程序员更好地理解代码,也可以让程序员更好地记住代码的含义,从而更好地维护和编写代码。另外,注释也可以用来提供一些额外的信息,例如程序的版本号、作者信息等。

2.1 #做占位符

1. MyBatis处理 #{ } 占位符,使用的 JDBC 对象是PreparedStatement 对象,执行sql语句的效率更高,并且能够避免 sql 注入,使得sql语句的执行更加安全。

2. #{ } 常常作为列值使用,位于sql语句中等号的右侧;#{ } 位置的值与数据类型是相关的。

3. #{ } 在处理数据时会加上双引号,这是因为它会把传入的数据都当成是一个字符串,所以在传入数据时会给传入的数据加上一个双引号!

4. #{ } 用来做变量替换,相当于使用PreparedStatement来对#{XXX}进行赋值操作。

注:如果在#{}和${}能同时使用的情况下建议使用#{},此处做以下两点使用场景说明

(1)在sql语句中,如果要接收传递过来的变量的值的话,必须使用#。因为使用#是通过PreparedStement接口来操作,可以防止sql注入,并且在多次执行sql语句时可以提高效率。

(2)$只是简单的字符串拼接而已,所以要特别小心sql注入问题。对于sql语句中非变量部分,那就可以使用$,比如$方式一般用于传入数据库对象(如传入表名)。

以上就是对$和#的一点说明。