原标题:JAVA使用预编译防止SQL注入

这是一条正常的SQL语句:

SELECT * FROM users WHERE name ='$var';

但是当变量var为 ' or true or '时,整条语句就变成:

SELECT * FROM users WHERE name ='' or true or '';

很明显,这条语句WHERE后面跟的条件无论如何都为真,所以会有SQL注入现象的产生,咋JAVA中可以使用PrepareStatment解决:

PreparedStatement preparedStatement=connection.prepareStatement("SELECT * FROM users WHERE name =?;");

然后,可以通过setXXX的方式来预编译参数:

preparedStatement.setString(x,name);

其中x为参数下标,从1开始,若无法明确参数类型,可以使用setObject()方法,PrepareStatment会自动进行判断处理。

preparedStatement.setObject(x,name);返回搜狐,查看更多

责任编辑:

java sql in 预编译_JAVA使用预编译防止SQL注入相关推荐

  1. java 及时编译_Java 面试-即时编译( JIT )

    当我们在写代码时,一个方法内部的行数自然是越少越好,这样逻辑清晰.方便阅读,其实好处远不止如此,通过即时编译,甚至可以提高执行时的性能,今天就让我们好好来了解一下其中的原理. 简介 当 JVM 的初始 ...

  2. java文件预览_java 在线预览doc,pdf

    先说一说如何实现在线预览doc网上查了很多资料,基本思路就是将doc 转为 pdf,由于低版本浏览器不支持预览pdf,所以基本是再将pdf 转为 swf. 由于我这次做的需求只需要兼容chrome即可 ...

  3. java 文件在线预览_java 在线预览doc,pdf

    先说一说如何实现在线预览doc 网上查了很多资料,基本思路就是将 doc 转为 pdf,由于低版本浏览器不支持预览 pdf,所以基本是再将 pdf 转为 swf (使用FlexPaper + swft ...

  4. java无法编译_Java静态方法无法编译

    当我编译这段代码时,会出现以下错误. 中的提取字符(java.郎,字符串,int) 问题2不能应用于(). 我应该修复什么? 谢谢. import java.util.Scanner; public ...

  5. java程序编译_Java程序的编译过程

    Java的编译期是一个模糊的概念,需要具体分析. 将 *.java文件转为 *.class的过程称为编译器的前端(前端编译).例如:JDK的javac编译器. 把字节码( *.class文件) 转变为 ...

  6. 预编译sql查询语句_频繁查询重新编译– SQL查询性能杀手–检测

    预编译sql查询语句 previous part of this article, we presented query recompilation basics. We explained when ...

  7. java 静态 编译_Java中的动态和静态编译实例详解

    Java中的动态和静态编译实例详解 首先,我们来说说动态和静态编译的问题. Q: java和javascript有什么区别? 总结了一下:有以下几点吧: 1.首先从运行环境来说java代码是在JVM上 ...

  8. 每日一题(36)—— 什么是预编译 , 何时需要预编译?

    什么是预编译 , 何时需要预编译? 1.总是使用不经常改动的大型代码体. 2.程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项.在这种情况下,可以将所有包含文件预编译为一个预编译头 ...

  9. android 代码发adb,Android预安装软件adb命令编译源码

    Android预安装软件&adb命令&编译源码 发布时间:2020-06-02 17:28:41 来源:51CTO 阅读:895 作者:年少的风 1.预安装软件: 将eclipse下的 ...

最新文章

  1. 《预训练周刊》第23期:Smart Bird:解决变换器性能瓶颈的新方法、Prompt:如何提升预训练模型的迁移效果...
  2. cad字体安装_浩辰CAD与AutoCAD兼容性测评大起底!
  3. unity3d中画线有几种方式_Spring RestTemplate中几种常见的请求方式
  4. hdu1156(简单线段树 模板题)
  5. 解决vue视图不渲染
  6. 处理接口超时_架构设计 | 接口幂等性原则,防重复提交Token管理
  7. android4.4之后的HttpUrlConnection的实现是基于okhttp
  8. 有时间依存效应或时间依存风险因素的生存分析
  9. Eclipse中代码自动提示功能设置
  10. 微信小程序集成融云 SDK (即时通讯) 集成必备条件
  11. IE无法浏览网页的常见原因及解决方法(转)
  12. Linus Torvalds 传记
  13. [moment 使用]-javascript使用
  14. 工业界和学术界最大区别是什么?
  15. 全景视角下的世界探索——三维全景地图
  16. SAP License:SAP软件作用是什么
  17. 【玩转ESP32】17、PWM调光
  18. 【加密锁】Virbox对Unity3D打包程序加密流程
  19. 拒绝无脑跳转“下载某度APP“!
  20. 九部比《五十度灰》更血脉喷张的电影,个个看完都会让人欲罢不能!

热门文章

  1. c语言两个数组字符串相加,两个字符串型数组如何相加(C语言)?
  2. java读取BACnet协议的设备信息-demo
  3. 数据挖掘之金融风控-贷款违约预测 02数据分析
  4. IDEA中出现Duplicated code fragment (18 lines long) 提示
  5. Android: viewHolder 复用错乱导致的显示错误
  6. 华为徐直军:“Huawei Inside”量产轿车已做到城区通勤无干预自动驾驶
  7. 固定表头、打开excel for Mac后自动跳转到当前日期所在列并高亮显示
  8. 【教程】基于TensorFlow Lite的yolov5部署过程
  9. Observable常用知识点整理
  10. 论文《A Neural Influence Diffusion Model for Social Recommendation》阅读