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

网站开发做网站网络广告类型

网站开发做网站,网络广告类型,猎头公司找的工作怎么样,公司网页如何免费制作MyBatis中#{}和${}的区别 #{}和${}都是MyBatis提供的sql参数替换。区别是#xff1a;#{}是预编译处理#xff0c;${}是字符串直接替换。#{}可以防止SQL注入#xff0c;${}存在SQL注入的风险#xff0c;例如 “ or 11”虽然存在SQL注入风险#xff0c;但也有自己的适用场…MyBatis中#{}和${}的区别 #{}和${}都是MyBatis提供的sql参数替换。区别是#{}是预编译处理${}是字符串直接替换。#{}可以防止SQL注入${}存在SQL注入的风险例如  “ or 11”虽然存在SQL注入风险但也有自己的适用场景比如排序功能表名字段名等作为参数传入时。#{}模糊查询要搭配使用mysql内置的拼接函数concat安全性高。模糊查询虽然${}可以完成但是存在SQL注入不安全。 直接替换是指是MyBatis 在处理 ${} 时就是把 ${} 替换成变量的值。 预编译处理是指MyBatis 在处理#{}时会将 SQL 中的 #{} 替换为?号使⽤ PreparedStatement 的 set ⽅法来赋值。 $是直接替换传入的SQL参数若遇到String类型时不会自动加单/双引号就会报错必须加单/双引号才不出错。并且还有sql注入问题。不过$也有自己的使用场景比如排序传入descasc字符串时是不需要加单/双引号的。此时就可以用$并且这两个字符串不让用户自己传直接给升序降序按钮也就避免了sql注入风险。能发生SQL注入主要还是为用户提供了输入框用户能传参。 而#无论是Integer类型还是String类型都会提前预编译,预编译SQL而且预编译SQL的性能更高。遇到String类型会自动加单/双引号。 以模糊查询为例${}和#{}的使用区别 使用${},但存在SQL注入风险。 select idgetBookByNname resultTypecom.example.demo.entity.BookInfoselect * from book_info where book_name like ${bookName}; /select 使用#{}更安全更高效。 select idgetBookByName resultTypecom.example.demo.entity.BookInfoselect * from book_info where book_name like concat(%,#{bookName},%); /select SQL注入问题${} 代码演示所传参数后跟  or 11 。就会查出全结果集。 bookMapper.getBookByN(平凡的世界 or 11); //传入参数 select * from book_info where book_name ${bookName}; //SQL语句 SQL日志打印 动态 SQL 语法 1.if标签 使用场景当我们在输入个人信息的时候不一定都得填写必填项非必填项这时候有的参数就为空。所以在插入时就得判空。 insert idinsert useGeneratedKeystrue keyPropertyidinsert into userinfo {username,password,nickname,if testsex ! null //test中的sex是属性不是字段sex,/if}birthday)values (#{username},#{password},#{nickname},if testsex !null //test中的这里的sex是属性#{sex},/if#{birthday})/insert 注意 test 中的 sex是传⼊对象中的属性不是数据库字段。 2.trim标签 prefix表示整个语句块以prefix的值作为前缀 suffix表示整个语句块以suffix的值作为后缀 prefixOverrides表示整个语句块要去除掉的前缀 suffixOverrides表示整个语句块要去除掉的后缀 如果输入参数全是非必填项。就需要if标签和trim标签相结合。 insert idss useGeneratedKeystrue keyPropertyidinsert into userinfotrim prefix( suffix) suffixOverrides,if testusername ! nullusername,/if //别忘记逗号if testpassword ! nullpassword,/if //test中的是属性不是字段if testnickname ! nullnickname,/ifif testsex ! nullsex,/ifif testbirthday ! nullbirthday,/if/trimtrim prefixvalues ( suffix) suffixOverrides,if testusername ! null#{username},/ifif testnickname ! null#{nickname},/ifif testsex ! null#{sex},/ifif testbirthday ! null#{birthday},/if/trim/insert 3.where标签 对于where后跟的参数是否为空不清楚时。 select idselect parameterTypecom.example.demo.entity.UserInfo //parameterType为 传入的参数类型select * from usrinfowhereif testusername ! nulland username #{username}/ifif testuserId ! nulland userId #{userId}/ifif testsex ! nulland sex #{sex}/if/where/select 以上标签也可以使⽤ trim prefixwhere suffixOverridesand 替换。 4.set标签 动态update操作 //parameterType 为传入参数的类型update idupdate parameterTypecom.example.demo.entity.UserInfoupdate userinfosetif testusername ! nullusername #{username},/ifif testpassword ! nullpassword #{password},/ifif testnickname ! nullnickname #{nickname},/ifif testsex ! nullsex #{sex},/ifif testbirthday ! nullbirthday #{birthday},/if/setwhere #{id}/update 以上标签也可以使⽤ trim prefixset suffixOverrides, 替换。 5.foreach标签 遍历集合如List时可以使用例如批量删除等操作。 // collection 集合类型 item集合名delete iddeleteByIdsdelete from userinfo where id inforeach collectionlist itemitem open( close) separator,#{list}/foreach/delete
http://www.pierceye.com/news/347857/

相关文章:

  • 周口网站关键词优化助孕网站优化推广
  • 做网站的钱叫什么科目企业做网站的好处有哪些
  • 做外贸网站流程如何建立网上商城
  • 爱网站关键词挖掘广西住房城乡建设厅
  • 零基础网站建设入门到精通视频教程河源建设网站
  • 焦作市建设工程网站石龙网站开发
  • 建公司网站报价牛商网网站建设
  • 中国现代公路建设有限公司网站网站建设技巧饣金手指排名27
  • 食品网站开发的背景阿里云oss建站 直接上传wordpress
  • 石泉政协网站建设方案网络广告推广服务
  • 怎么用lamp做网站桂林网
  • 织梦网站专题页面如何做网站排名优化提升快速
  • 公司建设网站费用吗qq官方网站登录入口
  • 怎么用自己的服务器做网站国外酷炫网站有哪些
  • 音乐网站建设规划国内最近新闻
  • 东莞骄阳网站建设wordpress 安装出现 过多重定向
  • 学校网站建设开题报告站长工具域名备案查询
  • 网站商城微信支付宝支付宝支付接口网站 空间地址是什么
  • 公司网站功能模块弹出全屏视频网站怎么做
  • 网站实现搜索功能网站建设时间规划
  • 产品单页营销型网站模板下载codex.wordpress.org
  • 河南省和城乡建设厅网站网站备案添加域名
  • 网站建设公司地址在哪济南网站建站公司
  • 图片瀑布流网站模板哪里有html5网站建设
  • 做韩国网站可以做推广的网站有哪些
  • 阳泉哪里做网站传统企业如何做好网络推广
  • 做网站不赚钱潍坊制作网站的公司
  • 网站城市切换代码手机微信官方网站
  • 福州建设招聘信息网站动漫设计专业哪个学校比较好
  • 网站建设需要哪些准备wordpress调用单页面跳转