使用Statement操作数据表的弊端

  • 通过调用 Connection 对象的 createStatement() 方法创建该对象。该对象用于执行静态的 SQL 语句,并且返回执行结果。

  • Statement 接口中定义了下列方法用于执行 SQL 语句:

    int excuteUpdate(String sql):执行更新操作INSERT、UPDATE、DELETE
    ResultSet executeQuery(String sql):执行查询操作SELECT
    
  • 但是使用Statement操作数据表存在弊端:

    • 问题一:存在拼串操作,繁琐
    • 问题二:存在SQL注入问题
  • SQL 注入是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入数据中注入非法的 SQL 语句段或命令(如:SELECT user, password FROM user_table WHERE user=‘a’ OR 1 = ’ AND password = ’ OR ‘1’ = ‘1’) ,从而利用系统的 SQL 引擎完成恶意行为的做法。

  • 对于 Java 而言,要防范 SQL 注入,只要用 PreparedStatement(从Statement扩展而来) 取代 Statement 就可以了。

使用Statement操作数据表的弊端相关推荐

  1. php 中curd表达啥,CURD语句的基本语法和PDO中操作数据表的基本步骤实例演示增删改查命令 2019年07月24日 23时10分...

    一.常用的CUR 最常用的就是: `CURD` 增删改查   它代表创建(Create).更新(Update).读取(Read)和删除(Delete)操作. 新增操作语法 * SQL规范: `INSE ...

  2. Mysql 零距离-入门(五)操作数据表

    上一节我们学了如何创建数据表,现在我们来学一下如何操作数据表. 数据表插值 操作数据表中最重要的操作,保存我们的网站数据,用户数据.我们先来看一下命令规则: INSERT [INTO] tbl_nam ...

  3. DDL 操作数据表 查询表

    DDL 操作数据表 查询表 查询某个数据库中所有的表名称 show tables; 查询数据表的结构 desc 表名称; 查看表中有哪些列,也可查看列的类型,约束

  4. JDBC-使用Statement操作数据库的弊端

    使用Statement操作数据库的弊端 问题一:存在拼串操作 假设情景如下:当从控制台输入需要在数据库查询的用户名密码时,此时存在拼串操作,操作繁琐且可读性差 问题二:sql注入问题 所以为了避免sq ...

  5. Django模型类操作数据表

    1.创建项目 django-admin startproject my_first_django # 创建一个名称为my_first_django的项目 命令执行后会产生一个项目名称的文件夹和一个ma ...

  6. Activiti常见操作数据表关系

    1.流程定义部署后操作activiti的3张表如下: act_re_deployment 流程定义部署表,每部署一次增加一条记录 act_re_procdef 流程定义表,部署每个新的流程定义都会在这 ...

  7. python操作数据表,循环造数100条数据

    python操作数据表,循环造数100条数据, 包括number,varchar. ```sql --先建个临时表 CREATE TABLE tempdata_aa( c1 VARCHAR2(30), ...

  8. 使用T-SQL语句操作数据表-更新数据

    使用update语句更新表中的数据.也就是修改表中的数据. update语法格式: update <表名> set <列名=更新值> [where <更新条件>] ...

  9. mysql whrere 占位_【MySQL】(4)操作数据表中的记录

    1. 插入记录INSERT 方法一: INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),( ...

  10. MySQL--4操作数据表中的记录小结

    最常用,最复杂的语句: 每一项的: 表的参照  From 条件    WHERE 进行记录的分组 GROUP BY 分组的时候对分组的条件进行设定  HAVING 对结果进行排序  ORDER BY ...

最新文章

  1. CAD绘图软件中如何查询图纸的版本是多少
  2. pandas Series DataFrame 丢弃指定轴上的项(三)
  3. Windows上使用Git管理文件
  4. 蛮力法在字符串匹配问题中的应用(JAVA)--朴素模式匹配算法
  5. Java数组去重的多种方法,[Java教程]JavaScript常见的五种数组去重的方式
  6. 神奇的CAReplicatorLayer
  7. 苹果支付35亿元和解iPhone“降速门”:国内用户又被忽略了
  8. 【php数组函数序列】之sort() - 对数组的元素值进行升序排序
  9. svg的transform-matrix详解
  10. DataSet 更新 心得(转)
  11. 服务器系统如何安装文件损坏,安装系统提示winload.exe故障,文件丢失损坏
  12. favicon.ico在线制作
  13. 再也不用手写爬虫了!推荐5款自动爬取数据的神器!
  14. JavaScript-switch条件分支语句
  15. TM1650数码管驱动芯片驱动数码管读取按键程序
  16. 登录超时提示+踢人下线实现(spring security)
  17. Flutter实践之高仿有妖气漫画,移动客户端开发工程师专业
  18. laravel-admin扩展wang-Editor上传图片设置
  19. 数据产品经理---如何设计指标字典
  20. RSA加密算法(公钥+私钥加密)

热门文章

  1. Guava之EventBus使用总结
  2. Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介
  3. Windows Server 2008群集仲裁机制
  4. java ftl 模板 输出list_关于在freemarker模板中遍历数据模型ListJavaBean的经验
  5. Ubuntu下多个gcc版本之间的切换
  6. LINUX修改文件权限
  7. Android Weekly Notes Issue #232
  8. Exchange 2016 CU3 安装失败解决方法
  9. 整合nagios+cacti遇到问题及解决办法
  10. 系统集成资质-2009年5月系统集成项目管理工程师真题-1