使用Statement操作数据表的弊端

简介: 使用Statement操作数据表的弊端

使用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 就可以了。
目录
相关文章
|
6月前
|
SQL
幂等修改表增加一列的sql语句
这个 SQL 查询用于修改名为 `t1` 的表,通过添加一个名为 `b` 的新列,并指定数据类型。`IF NOT EXISTS` 子句确保只有在表中不存在该列的情况下才会添加。 在你的查询中,`<数据类型>` 应该被替换为你想要的具体数据类型(例如,INT,VARCHAR等)。以下是使用 INT 数据类型的示例: ```sql ALTER TABLE t1 ADD COLUMN IF NOT EXISTS b INT; ``` 请根据你的需求选择合适的数据类型。这个查询的作用是在表 `t1` 中添加一个名为 `b` 的新列,如果该列尚不存在的话。
122 0
|
5月前
|
SQL 关系型数据库 MySQL
零基础学习数据库SQL语句之定义数据库对象的DDL语句
零基础学习数据库SQL语句之定义数据库对象的DDL语句
51 0
|
SQL 存储 关系型数据库
【MySQL数据库基础 二】DDL数据定义语句
【MySQL数据库基础 二】DDL数据定义语句
132 0
|
SQL 数据库
数据库增删查改联表操作的sql语句
数据库增删查改联表操作的sql语句
300 0
|
SQL 数据库连接
Dbvis数据库连接工具将查询出数据转化为sql插入语句方法
Dbvis数据库连接工具将查询出数据转化为sql插入语句方法
218 0
Dbvis数据库连接工具将查询出数据转化为sql插入语句方法
|
SQL 架构师 关系型数据库
同一个SQL语句,为啥性能差异咋就这么大呢?(1分钟系列)
今天花1分钟简单说下,常见的type结果及代表的含义,并且通过同一个SQL语句的性能差异,说明建对索引多么重要。
543 0
同一个SQL语句,为啥性能差异咋就这么大呢?(1分钟系列)
|
SQL 测试技术
abap代码使用sql语句删除自定义表的1条数据
自定义表,指的是abap开发人员使用SE11创建的透明表。既然是自己创建的表,那么增删改查的时候,基本上很自由,至少可以随意使用sql语句对表的内容进行处理。那么,对于这种情况,如何删除数据呢?如下图,是表的内容,红框中的数据,是我们打算删除的内容:删除一条记录。
2135 0
|
SQL 存储 Oracle
为什么数据库有时候不能定位阻塞(Blocker)源头的SQL语句
原文:为什么数据库有时候不能定位阻塞(Blocker)源头的SQL语句     在SQL Server数据库或OACLE数据库当中,通常一个会话持有某个资源的锁,而另一个会话在请求这个资源,就会出现阻塞(blocking)。
1024 0