淘宝优惠的网站怎么做,网站一般费用,网页设计模板 中文,涞源县住房和城乡建设局网站#{}和${}的区别#xff1a; #{}: 底层使用PreparedStatement。特点#xff1a;先进行SQL语句的编译#xff0c;然后给SQL语句的占位符问号?传值。可以避免SQL注入的风险。 ${}#xff1a;底层使用Statement。特点#xff1a;先进行SQL语句的拼接#xff0c;然后再对SQL语…#{}和${}的区别 #{}: 底层使用PreparedStatement。特点先进行SQL语句的编译然后给SQL语句的占位符问号?传值。可以避免SQL注入的风险。 ${}底层使用Statement。特点先进行SQL语句的拼接然后再对SQL语句进行编译。存在SQL注入的风险。 优先使用#{}这是原则。避免SQL注入的风险。 什么时候使用${}?
1.如果需要SQL语句的关键字放到SQL语句中只能使用${}因为#{}是以值的形式放到SQL语句当中的。 如有的时候我们的sql语句需要使用esc与desc来决定查询结果是升序还是降序 附上两种的执行结果 #{}的执行结果
Preparing: selectid, car_num as carNum, brand, guide_price as guidePrice, produce_time as produceTime, car_type as carTypefrom t_car order by produce_time ?
Parameters: asc(String)selectid, car_num as carNum, brand, guide_price as guidePrice, produce_time as produceTime, car_type as carType
from t_car order by produce_time asc${}的执行结果
Preparing:select id, car_num as carNum, brand, guide_price as guidePrice, produce_time as produceTime, car_type as carTypefrom t_car order by produce_time asc
Parameters:2. 向SQL语句当中拼接表名就需要使用${}
2. 向SQL语句当中拼接表名就需要使用${}现实业务当中可能会存在分表存储数据的情况。因为一张表存的话数据量太大。查询效率比较低。可以将这些数据有规律的分表存储这样在查询的时候效率就比较高。因为扫描的数据量变少了。日志表专门存储日志信息的。如果t_log只有一张表这张表中每一天都会产生很多log慢慢的这个表中数据会很多。怎么解决问题可以每天生成一个新表。每张表以当天日期作为名称例如t_log_20220901t_log_20220902 ....你想知道某一天的日志信息怎么办假设今天是20220901那么直接查t_log_20220901的表即可。
3.批量删除一次删除多条记录。
批量删除的SQL语句有两种写法第一种ordelete from t_car where id1 or id2 or id3;第二种intdelete from t_car where id in(1,2,3);应该采用${}的方式delete from t_car where id in(${ids});
4.模糊查询like 第一种方案 ‘% $ {brand}%’ 第二种方案concat函数这个是mysql数据库当中的一个函数专门进行字符串拼接 concat(‘%’,#{brand},‘%’) 第三种方案比较鸡肋了。可以不算。 concat(‘%’,‘${brand}’,‘%’) 第四种方案 “%”#{brand}“%”