ps.executeUpdate(); 是什么意思?

为什么能设置成 int型呢?

是当成功插入数据到数据库时候,这个会返回一个大于1的数字,来表明数据成功插入库之中

sql注入发生的时间,sql注入发生的阶段在sql预编译阶段,当编译完成的sql不会产生sql注入,采用jdbc操作数据时候,preparedStatement 预编译对象会对传入sql进行预编译。

那么当传入id 字符串为 "update ft_proposal set id = 3;drop table ft_proposal;" 这种情况下就会导致sql注入删除ft_proposal这张表。

预编译语句

处理使用预编译语句之外,另一种实现方式可以采用存储过程,存储过程其实也是预编译的,存储过程是sql语句的集合,将所有预编译的sql语句编译完成后,存储在数据库上。

当传入的参数为3;drop table user;当执行时可以看见打印的sql语句为:select name from usre where id = ?;不管输入何种参数时,都可以防止sql注入,因为mybatis底层实现了预编译。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-03
代码不全,我猜ps是数据库的操作,你可以给ps设置SQL语句,然后ps.executeUpdate(); 是执行了这条SQL语句。返回值int是你更新了数据库中几条记录。本回答被提问者采纳
第2个回答  推荐于2016-11-17
方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
第3个回答  2019-09-19
是当成功插入数据到数据库时候,这个会返回一个大于1的数字,来表明数据成功插入库之中
第4个回答  2019-04-21
方法executequery
这个方法被用来执行
select
语句,它几乎是使用最多的
sql
语句。
方法executeupdate
用于执行
insert、update

delete
语句以及
sql
ddl(数据定义语言)语句,例如
create
table

drop
table。insert、update

delete
语句的效果是修改表中零行或多行中的一列或多列。executeupdate
的返回值是一个整数,指示受影响的行数(即更新计数)。对于
create
table

drop
table
等不操作行的语句,executeupdate
的返回值总为零。
方法execute:
用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能
相似回答