mabatis中的注意事项
①#{}和${}的区别。
※mabatis在对sql语句进行预编译之前,会对sql进行动态解析,会对动态sql进行处理,一个#{}会被解析成一个参数占位符?,而${}仅仅为一个纯粹的字符串的替换,在动态sql解析阶段会进行变量的替换。
※能使用#{}就用它,相同的预编译可以重复利用,${}在预编译之前就已经被变量替换了这会存在sql注入的问题。
※#{}会被解析成一个参数占位符?,使用sql占位符替换字符串时会加上单引号‘’,而且${}是一个纯粹的字符串的替换。
②预编译:数据库再处理SQL语句的时候有一个预编译的过程,预编译对象就是把一些固定的SQL编译后,存放在数据库缓冲池中,再次执行相同的Sql语句就不需要再预编译的过程了,大大降低运行时间,大大的提高了效率。SQL procedure.
①#{}和${}的区别。
※mabatis在对sql语句进行预编译之前,会对sql进行动态解析,会对动态sql进行处理,一个#{}会被解析成一个参数占位符?,而${}仅仅为一个纯粹的字符串的替换,在动态sql解析阶段会进行变量的替换。
※能使用#{}就用它,相同的预编译可以重复利用,${}在预编译之前就已经被变量替换了这会存在sql注入的问题。
※#{}会被解析成一个参数占位符?,使用sql占位符替换字符串时会加上单引号‘’,而且${}是一个纯粹的字符串的替换。
②预编译:数据库再处理SQL语句的时候有一个预编译的过程,预编译对象就是把一些固定的SQL编译后,存放在数据库缓冲池中,再次执行相同的Sql语句就不需要再预编译的过程了,大大降低运行时间,大大的提高了效率。SQL procedure.