1. 首页
  2. 综合百科
  3. 关于executeupdate的信息

关于executeupdate的信息

简介:关于关于executeupdate的信息的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

#本文目录一览

1、java两个mysql数据库之间复制表如何使用executeUpdate2、ps.executeUpdate();是什么意思?3、JAVAexecuteUpdate怎么用4、executeupdate()和executeUpdate(sql)用法区别主要是参数和返回值的区别5、executeUpdate()***的使用6、JAVAStatement接口中的execute***跟executeUpdate***的区别?1java两个mysql数据库之间复制表如何使用executeUpdate

stmt2.executeUpdate("INSERTINTOldDBusers('"+ext+"','"+pass+'")");

这样就可以了,不过一般建议后台写两个类,使用其对象来存储一下数据

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

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

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

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

预编译语句

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

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

3JAVAexecuteUpdate怎么用

statement

接口中有executeupdate(string

sql)***发送sql

并返回执行成功的记录的条数

int

preparestatement是statement的子接口自己定义了***executeupdate()

用于执行已发送的预编译的sql

并返回执行成功的记录的条数

int

一般都是用preparestatement

有预编译功能可以防止sql注入攻击

4executeupdate()和executeUpdate(sql)用法区别主要是参数和返回值的区别

***executeUpdate

用于执行INSERT、UPDATE或DELETE语句以及SQLDDL(数据定义语言)语句,例如CREATETABLE和

DROPTABLE。INSERT、UPDATE或DELETE语句的效果是修改表中零行或多行中的一列或多列。executeUpdate

的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于CREATETABLE或DROPTABLE

等不操作行的语句,executeUpdate的返回值总为零。

如:

//加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

//使用DriverManager获取数据库连接

Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1234");

//使用Connection来创建一个Statment对象

Statementstmt=conn.createStatement();//执行DML语句,返回受影响的记录条数

returnstmt.executeUpdate(sql);

***execute:

可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。如果执行后之一个结果是

ResultSet,则返回true,否则返回false。但它执行SQL语句时比较麻烦,通常我们没有必要使用execute***来执行SQL语句,而

是使用executeQuery或executeUpdate更适合,但如果在不清楚SQL语句的类型时则只能使用execute***来执行该SQL语句

了。

如://加载驱动

Class.forName(driver);

//获取数据库连接

conn=DriverManager.getConnection(url,user,pass);//使用Connection来创建一个Statment对象

stmt=conn.createStatement();

//执行SQL,返回boolean值表示是否包含ResultSetbooleanhasResultSet=stmt.execute(sql);//如果执行后有ResultSet结果集

if(hasResultSet)

{

//获取结果集

rs=stmt.getResultSet();

//ResultSetMetaData是用于分析结果集的元数据接口ResultSetMetaDatar***d=rs.getMetaData();intcolumnCount=r***d.getColumnCount();

//迭代输出ResultSet对象

while(rs.next())

{//依次输出每列的值

for(inti=0;icolumnCount;i++)

{

System.out.print(rs.getString(i+1)+"/t");}

System.out.print("/n");

}}

else{

System.out.println("该SQL语句影响的记录有"+stmt.getUpdateCount()+"条");}

两者区别具体表现:

execute***执行返回的都是布尔值。

executeupdate返回的都是int整数类型。

execute***在执行SQL语句的时候比较麻烦,而executeupdate比较方便。

我不是答的高质量,怎么老是把我归到高质量呢

5executeUpdate()***的使用

***executeUpdate

用于执行INSERT、UPDATE或DELETE语句以及SQLDDL(数据定义语言)语句,例如CREATETABLE和DROPTABLE。INSERT、UPDATE或DELETE语句的效果是修改表中零行或多行中的一列或多列。

executeUpdate的返回值是一个整数,指示受影响的行数(即更新计数)。对于CREATETABLE或DROPTABLE等不操作行的语句,executeUpdate的返回值总为零。

使用executeUpdate***是因为在createTableCoffees中的SQL语句是DDL(数据定义语言)语句。创建表,改变表,删除表都是DDL语句的例子,要用executeUpdate***来执行。也可以从它的名字里看出,***executeUpdate也被用于执行更新表SQL语句。

扩展资料:

***execute:

用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能

execute***应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程或动态执行未知SQL字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。

因为***execute处理非常规情况,所以获取其结果需要一些特殊处理并不足为怪。

例如,假定已知某个过程返回两个结果集,则在使用***execute执行该过程后,必须调用***getResultSet获得之一个结果集,然后调用适当的getXXX***获取其中的值。要获得第二个结果集,需要先调用getMoreResults***,然后再调用getResultSet***。

如果已知某个过程返回两个更新计数,则首先调用***getUpdateCount,然后调用getMoreResults,并再次调用getUpdateCount。

对于不知道返回内容,如果结果是ResultSet对象,则***execute返回true;如果结果是Javaint,则返回false。

如果返回int,则意味着结果是更新计数或执行的语句是DDL命令。在调用***execute之后要做的之一件事情是调用getResultSet或getUpdateCount。

调用***getResultSet可以获得两个或多个ResultSet对象中之一个对象;或调用***getUpdateCount可以获得两个或多个更新计数中之一个更新计数的内容。

1、getResultSet

返回null意味着不是结果集可以理解为是一个更新计数或没有其它结果

2、getUpdateCount

返回影响的行数-1表示结果是结果集或没有结果

如果已经调用***getResultSet并处理了它返回的ResultSet对象,则有必要调用***getMoreResults以确定是否有其它结果集或更新计数。如果getMoreResults返回true,则需要再次调用getResultSet来检索下一个结果集。

如上所述,如果getResultSet返回null,则需要调用getUpdateCount来检查null是表示结果为更新计数还是表示没有其它结果。

当getMoreResults返回false时,它表示该SQL语句返回一个更新计数或没有其它结果。因此需要调用***getUpdateCount来检查它是哪一种情况。在这种情况下,当下列条件为真时表示没有其它结果:

((stmt.getMoreResults()==false)&&(stmt.getUpdateCount()==-1))。

参考资料:

百度百科——update

百度百科——ShellExecute

6JAVAStatement接口中的execute***跟executeUpdate***的区别?

boolean

execute

允许执行查询语句、更新语句、DDL语句。

返回值为true时,表示执行的是查询语句,可以通过getResultSet***获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount***获取更新的记录数量。

int

executeUpdate(String

sql)

执行给定

SQL

语句,该语句可能为

INSERT、UPDATE

DELETE

语句,或者不返回任何内容的

SQL

语句(如

SQL

DDL

语句)。

ResultSet

executeQuery(String

sql)

执行给定的

SQL

语句,该语句返回单个

ResultSet

对象。

返回值是更新的记录数量

executeupdate的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、executeupdate的信息别忘了在本站进行查找哦。

本文主要介绍了关于关于executeupdate的信息的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/238964.html