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

优酷的网站头怎么做的微网站如何做推广方案

优酷的网站头怎么做的,微网站如何做推广方案,怎么做素材网站,wordpress 上传大图MyBatis 是一个优秀的持久层框架#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。本文将深入探讨 MyBatis 中的增删改查操作#xff0c;重点讲解静态与动态 SQL 语句的拼接#xff0c;并分析 S…MyBatis 是一个优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。本文将深入探讨 MyBatis 中的增删改查操作重点讲解静态与动态 SQL 语句的拼接并分析 SQL 注入问题及其防范措施。 1. MyBatis 基础配置 在开始之前我们需要配置 MyBatis 的基本环境。以下是一个简单的 pom.xml 配置文件包含了 MyBatis 的核心依赖和 MySQL 驱动依赖 dependencies!-- MyBatis 核心包 --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.5/version/dependency!-- MySQL 驱动包 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.6/version/dependency!-- 单元测试 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.10/version/dependency!-- 日志 --dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency /dependencies 2. 静态 SQL 语句 静态 SQL 语句是指在编写 SQL 时SQL 语句的结构和内容是固定的不会根据条件的变化而变化。以下是一个简单的静态 SQL 查询示例 !--id:方法名--!--resultType:定义数据的返回-- !-- select idfindAll resultTypecom.qcby.entity.User-- !-- select *from user;-- !-- /select--!-- select idfindById resultTypecom.qcby.entity.User parameterTypejava.lang.Integer-- !-- select * from user where id#{id}-- !-- /select--!-- select idselectByUserName resultTypecom.qcby.entity.User parameterTypejava.lang.String-- !-- select *from user where username#{username}-- !-- /select--!-- insert idinsert parameterTypecom.qcby.entity.User-- !-- insert into user (username,birthday,sex,address) value (#{username},#{birthday},#{sex},#{address});-- !-- /insert--!-- update idupdate parameterTypecom.qcby.entity.User-- !-- update user set username#{username},birthday#{birthday},sex#{sex},address#{address}-- !-- where id#{id}-- !-- /update--!-- delete iddelete parameterTypejava.lang.Integer-- !-- delete from user where id#{id}-- !-- /delete-- !-- select idlikeByName resultTypecom.qcby.entity.User parameterTypejava.lang.String-- !-- select * from user where username like %${value}%;-- !-- /select-- !-- select idlikeByName1 resultTypecom.qcby.entity.User parameterTypejava.lang.String-- !-- select * from user where username like #{username};-- !-- /select-- 在这个例子中findAll 方法会返回 user 表中的所有记录。静态 SQL 语句适用于简单的查询场景但在复杂的业务逻辑中静态 SQL 往往无法满足需求。 3. 动态 SQL 语句 动态 SQL 是 MyBatis 的强大特性之一它允许我们根据不同的条件动态生成 SQL 语句。MyBatis 提供了多种标签来实现动态 SQL如 if、choose、when、otherwise、trim、where、set 和 foreach。 3.1 if 标签 if 标签用于根据条件判断是否包含某段 SQL 语句。以下是一个使用 if 标签的动态 SQL 示例 !--动态sql:能够在不同的条件下拼接出不同的sql语句--!--where 标签的功能能够去掉where 后边的 and 或 or--select idselectUser parameterTypecom.qcby.entity.User resultTypecom.qcby.entity.Userselect * from userwhereif testusername!null and username!username#{username}/ifif testbirthday!nulland birthday#{birthday}/ifif testsex!null and sex!and sex#{sex}/ifif testaddress!null and address!and address#{address}/if/where/select 在这个例子中selectUser 方法会根据传入的 User 对象的 username 和 sex 属性动态生成 SQL 语句。如果 username 或 sex 为空则不会包含对应的条件。 3.2 choose、when 和 otherwise 标签 choose 标签类似于 Java 中的 switch 语句它可以根据不同的条件选择不同的 SQL 片段。以下是一个使用 choose 标签的示例 select idselectUserByChoose resultTypecom.qcby.entity.User parameterTypecom.qcby.entity.UserSELECT * FROM userwherechoosewhen testusername ! null and username ! username #{username}/whenwhen testsex ! null and sex ! sex #{sex}/whenotherwiseid #{id}/otherwise/choose/where /select 在这个例子中selectUserByChoose 方法会根据 username、sex 和 id 的不同值动态生成 SQL 语句。 3.3 foreach 标签 foreach 标签用于遍历集合或数组并生成相应的 SQL 语句。以下是一个使用 foreach 标签的批量删除示例 !--foreach循环--!--批量删除--!-- 批量删除的sql语句:delete from user where id in (6,7,8); --delete iddeleteMoreByArray delete from user where id inforeach collectionids itemid separator, open( close)#{id}/foreach/delete!-- collection:当前要循环的数组或者集合 --!-- item: 我们指定要循环的数组的每一个元素 --!-- separator:每一个元素应该用什么来做分割 --!-- open:当前循环是以什么开始 --!-- close:当前循环是以什么结束 --!--批量添加--!--insert into user(username,birthday,sex,address) values (#{user.username},#{user.birthday},#{user.sex},#{user.address}), (#{user.username},#{user.birthday},#{user.sex},#{user.address}), (#{user.username},#{user.birthday},#{user.sex},#{user.address}), (#{user.username},#{user.birthday},#{user.sex},#{user.address}) --update idinsertMoreByList parameterTypecom.qcby.entity.Userinsert into user(username,birthday,sex,address) valuesforeach collectionusers itemuser separator,(#{user.username},#{user.birthday},#{user.sex},#{user.address})/foreach/update 在这个例子中deleteMoreByArray 方法会根据传入的 ids 数组动态生成批量删除的 SQL 语句。 4. SQL 注入问题及防范 SQL 注入是一种常见的安全漏洞攻击者可以通过在输入中插入恶意 SQL 代码来操纵数据库查询。MyBatis 通过使用 #{} 占位符来防止 SQL 注入。 4.1 #{} 与 ${} 的区别 #{}MyBatis 会使用预编译语句PreparedStatement来处理参数参数会被安全地转义从而防止 SQL 注入。 ${}MyBatis 会直接将参数拼接到 SQL 语句中存在 SQL 注入的风险。 以下是一个使用 #{} 的示例 select idfindById resultTypecom.qcby.entity.User parameterTypejava.lang.IntegerSELECT * FROM user WHERE id #{id} /select 在这个例子中#{} 会确保 id 参数被安全地处理防止 SQL 注入。 4.2 防范 SQL 注入的最佳实践 始终使用 #{}在大多数情况下应使用 #{} 来处理参数避免使用 ${}。 避免动态拼接 SQL尽量避免在 SQL 语句中动态拼接用户输入的内容。 使用 MyBatis 的动态 SQL 标签通过使用 if、choose 等标签可以安全地构建动态 SQL 语句。 5. 总结 MyBatis 提供了强大的动态 SQL 功能使得我们可以根据不同的条件灵活地生成 SQL 语句。同时MyBatis 通过 #{} 占位符有效地防止了 SQL 注入问题。在实际开发中我们应充分利用 MyBatis 的动态 SQL 特性并遵循最佳实践来确保应用的安全性。 通过本文你应该对 MyBatis 的增删改查操作、动态 SQL 语句拼接以及 SQL 注入问题有了更深入的理解。希望这些内容能帮助你在实际项目中更好地使用 MyBatis。 参考文献 MyBatis 官方文档 SQL 注入攻击与防御
http://www.dnsts.com.cn/news/132302.html

相关文章:

  • seo网站优化怎么做做企业网站怎么样
  • 顺德龙江网站建设沈阳网站优化推广方案
  • 网站建设 办公系统加盟招商网站建设
  • 福州专业网站制作定制网站建设公司哪家便宜
  • 手机网站商场建设ui设计去什么公司好
  • 北京公司网站建设费用企业网络拓扑图及配置
  • 响应式网站服务网站开发虚拟主机管理系统
  • 大浪网站建设网站如何做百度搜索优化
  • 网站站外优化怎么做wordpress展示主题
  • 南昌网站建设讯息iis7.5 wordpress
  • 湘西网站建设花垣网站框架一般用什么做
  • 有哪些网站做的比较好苏州注册公司好快记财务
  • 吉林省建设厅网站市政建设多元国际二维码图片
  • 怀来县网站建设网站主编 做啥
  • 深圳东风大厦 网站建设温州网站建设方案推广
  • 吉林省网站建设软文广告投放平台
  • 网站建设资金预算怎样做网站赚流量
  • 长沙电商网站网站性能优化方法
  • 华为模板建站网站seo关键字优化
  • 福州市交通建设集团有限公司网站网络公司实践报告3000字
  • 怎样给网站做优化网页设计师属于什么部门
  • 全屋定制怎么样做网站嘉兴网站快速排名优化
  • 怎么做网站导航条wordpress模板最新
  • asp网站做视频腾讯云服务器控制台
  • 安全的集团网站建设做模板网站赚钱吗
  • 为什么要做手机网站开发免费设计网站
  • 网站 版本 白名单 wap 解析做山西杂粮的网站
  • 中国网站模板免费下载白云网站建设
  • 网站策划与建设阶段的推广方法电话外呼系统呼叫中心系统
  • 自己做网站花费百度推广关键词规划师