当前位置: 首页 > news >正文

泰格豪雅手表官方网站15年做啥网站致富

泰格豪雅手表官方网站,15年做啥网站致富,新公司做网站怎么弄,wordpress登陆链接键盘敲烂,年薪30万🌈 目录 一、SQL的预编译 📕一条SQL语句的执行过程 📕弊端 📕预编译SQL的优势 📕两种参数占位符 📕小结 二、动态SQL 📕概念介绍: &#x1f4…

键盘敲烂,年薪30万🌈

目录

一、SQL的预编译

📕一条SQL语句的执行过程

📕弊端

📕预编译SQL的优势

📕两种参数占位符

📕小结

二、动态SQL

📕概念介绍:

📕案例:

📕动态SQL语句:

📕应用场景总结:

三、总结:


一、SQL的预编译

📕一条SQL语句的执行过程

📕弊端
  • 3条SQL语句都是删除操作,但是经过语法解析,优化,编译会生成3条不同的SQL语句,降低性能也浪费空间。
delete from emp where id = 1;  
delete from emp where id = 2;
delete from emp where id = 3;
//优化后执行3条不同的SQL语句

📕预编译SQL的优势
  • 使用参数占位符#{}替代
  • 预编译生成的SQL语句相同,故第二次、第三次,省去了解析和优化过程,提高性能
delete from emp where id = #{id};
-- 预编译后的SQL语句
delete from emp where id = ?;

预编译可防止SQL注入

下面是一个登户登录的校验,当你输入用户名和密码,点击登录,信息传到服务器,服务器端会从User表中查询有无该用户,以下是两种SQL语句的差别。

-- 用户登录校验
select username, password from user where username='张三' and password='123'-- 普通语句
select username, password from user where username='saggd' and password='' or '1'='1';-- 预编译SQL安全
select username, password from user where username=? ans password=?;

小结:

普通语句编译后会将参数以字符串的形式拼接到SQL语句中,这就造成了语句的恒成立

预编译SQL编译后将参数整体视为一个字符串,当语句开始执行时,才进行替换

📕两种参数占位符

#{}

  • 执行SQL时,会将#{…}替换为?,生成预编译SQL,会自动设置参数值。
  • 使用时机:参数传递,都使用#{…}

${}

  • 拼接SQL。直接将参数拼接在SQL语句中,存在SQL注入问题。
  • 使用时机:如果对表名、列表进行动态设置时使用。

📕小结

预编译SQL利用参数占位符编译生成的SQL语句相同,性能高效

可防止SQL注入

二、动态SQL

📕概念介绍:

随着用户的输入或外部条件的变化而变化的SQL语句,我们称为 动态SQL

📕案例:

📕动态SQL语句:

<if>用于判断条件是否成立。使用test属性进行条件判断,如果条件为true,则拼接SQL。

用法:test属性为if的判断条件

实现:例如动态sql实现条件查询

    <!--    动态sql - if--><select id="select" resultType="com.itpan.pojo.Emp">select *from emp<where><if test="name != null">name like concat('%', #{name}, '%')</if><if test="gender != null">and gender = #{gender}</if><if test="begin != null and end != null">and entrydate between #{begin} and #{end}</if></where>order by update_time desc</select>

注意:

如果name字段为空,sql语句为select * from emp where and gender = #{gemder}……

引入<where></where>标签:

where 元素只会在子元素有内容的情况下才插入where子句。而且会自动去除子句的开头的AND 或OR

同理update时也要引入<set></set>标签去除多余 ,

<foreach>遍历集合或数组给字段赋值

属性介绍 :

  • collection:集合或数组名
  • item:要分割的字段名
  • separator:每次遍历的分隔符
  • open:遍历开始前拼接的片段
  • close:遍历开始后拼接的片段

实现:例如实现批量删除

<!--    批量删除元素-->
<!--    ids是List<Integer>集合><delete id="deleteById">delete from emp where id in<foreach collection="ids" item="id" separator="," open="(" close=")">#{id}</foreach></delete>

<sql>与<include>

  •  <sql>定义可重用的 SQL 段。
  • <include>通过属性refid,指定包含的sql片段。

📕应用场景总结:

<if>

  • 用于判断条件是否成立,如果条件为true,则拼接SQL
  • 形式:<if test="name != null">…</if>

<where>

  • where 元素只会在子元素有内容的情况下才插入where子句,而且会自动去除子句的开头的AND OR

<set>

  • 动态地在行首插入 SET 关键字,并会删掉额外的逗号。(用在update语句中)

<foreach>

  • 遍历集合或数组给字段赋值
  • 形式<foreach collection=集合或数组名 item=字段名 separator="," open="(" close=")">

<sql><include>

  • sql封装相同代码 include引入

三、总结:

🌈 动态SQL是重点,也是我们开发中最为常用的SQL语句

🌈 #{} 与 ${}占位符有什么区别 -> 大厂面试题

🌈 预编译SQL的优势

http://www.yayakq.cn/news/808133/

相关文章:

  • 清溪镇网站仿做网站建设总经理岗位职责
  • 舟山注册公司企业网站seo参考文献
  • 网站添加模块网站强制qq弹窗代码
  • 电商网站话费充值怎么做快速制作网站的方法
  • 聊城高端网站建设免费海外网站建设
  • 手机网站需要什么易企秀h5怎么制作
  • 建设一个网站需要考虑什么阳西网络问政平台官网
  • 用自己网站做淘宝客个人网站建设方案书备案
  • 有网站代码 如何建设网站购物网页版
  • 网站建设哪里公司好单页设计思路
  • 做网站数据库坏了郑州市经开区建设局网站
  • 品牌商城网站建设公司做水果网站需要多钱
  • 甘肃住房和城乡建设厅网站首页小本本教你做网站
  • 海山免费网站建设电子商务网站建设体会
  • 凡科自助建站网站泉州模板建站平台
  • 学做网站需要多少钱重庆市建设工程造价信息网查询
  • 网络公司手机网站模板一个公司能备案几个网站
  • 网站rar文件wordpress 视频外链
  • 本地环境建设网站wordpress相册列表
  • 自己开网站怎么开wordpress留言群发
  • 营销型网站应用手机网站免费生成
  • 网站建设和网站搭建哪个好云南汽车网络营销
  • 网站运营优化培训百度手机浏览器下载
  • 北京建站模板企业常德做网站报价
  • 优秀定制网站建设方案微商城哪个平台做得比较好
  • 做网站设计最好的公司南皮县网站建设
  • 深圳营销型网站费用网站建设和客户面谈
  • 微网站建设教学东莞市网络广告推广公司
  • 如何搜索asp网站广州红盾信息门户网站
  • 怎么下载网站的模板企业网站的功能