问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

executeupdate和execute的区别?

发布网友 发布时间:2022-04-10 02:23

我来回答

3个回答

懂视网 时间:2022-04-10 06:45

Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

1>方法executeQuery 
用于产生单个结果集(ResultSet)的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

如:

//加载数据库驱动

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

//使用DriverManager获取数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
                "root","1234");

//使用Connection来创建一个Statment对象
Statement  stmt = conn.createStatement();

//执行查询语句
ResultSet rs =stmt.executeQuery("select * from teacher");

//把查询结果输出来

while (rs.next())

{

    System.out.println(rs.getInt(1) + "/t" +    rs.getString(2)); 
}

 

2>方法executeUpdate

用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

如:

//加载数据库驱动

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

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

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

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

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

return stmt.executeUpdate(sql);

 

3>方法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值表示是否包含ResultSet 
            boolean hasResultSet = stmt.execute(sql); 
            //如果执行后有ResultSet结果集

            if (hasResultSet)

            {

                //获取结果集 
                rs = stmt.getResultSet();

                //ResultSetMetaData是用于分析结果集的元数据接口 
                ResultSetMetaData rsmd = rs.getMetaData();

                int columnCount = rsmd.getColumnCount();
                //迭代输出ResultSet对象

                while (rs.next())

                {//依次输出每列的值
                    for (int i = 0 ; i < columnCount ; i++ ) 
                    {

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

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

                } 
            }

            else 
            {

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

JDBC中execute、executeQuery和executeUpdate的区别

标签:from   创建   ase   data   query   connect   ada   nec   statement   

热心网友 时间:2022-04-10 03:53

主要区别:execute:执行给定的 SQL 语句,该语句可能返回多个结果。executeUpdate:执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)

一、方法executeUpdate:

1、用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。 

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

二、方法execute: 

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

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

Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

热心网友 时间:2022-04-10 05:11

在用纯JSP做一个页面报警功能的时候习惯性的用executeQuery来执行SQL语句,结果执行update时就遇到问题,语句能执行,但返回结果出现问题,另外还忽略了executeUpdate的返回值不是结果集ResultSet,而是数值。

statement 接口中有executeUpdate(String sql)方法发送sql 并返回执行成功的记录的条数 int
prepareStatement是statement的子接口自己定义了方法executeUpdate() 用于执行已发送的预编译的sql并返回执行成功的记录的条数 int。一般都是用prepareStatement 有预编译功能可以防止sql注入攻击。

boolean execute(String sql)  Executes the given SQL statement, which may return multiple results.。execute返回的是一个boolean型东西。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
以后再也不会买vivo质量太差了!才买来的都是卡死,两千多的手机就... 17寸显示器 部分网页右侧看不到 无法显示 猎豹手机浏览器使用百度搜索为何经常白屏,只要点网址导航页的百度,就很... 用什么浏览器都放不出视频是怎么回事,会出现白屏一闪一闪的,时而又五颜... 在使用猎豹浏览器打开一个新标签时突然白屏,然后恢复正常 食品可否退换货 换了主板后,开机只有CPU风扇在转,进不了系统没有"嘀"声显示器没反应 CP... ...又没有发票怎么办了 我是用微信付款的 我该怎么投诉了 ...话多交多得,但以我爸为例,57 岁,交3年可领养老金 眉山城镇社保按1.0缴费退休多少钱? 连接wifi时,身份验证出现问题怎么办 连接wifi身份验证出现问题怎么办 连WiFi连接身份出现问题。其它的可以连的上,正常? 九蒸九晒黑芝麻效果怎么样? ETC在别的银行撤销,过多长时间到银行可以办理ETC。 浙江的ETC注销以后,办下一个,中间要间隔多长时间 金银花牛蒡茶枸杞大枣决明子胎菊石斛花这些可以一起泡水喝吗? 可以从随手借借到多少钱?可以借多久? 随手借为什么有额度 提现的时候就被拒 教师90年参加工作到现在能存多少钱? 随手借正规吗 铁皮石斛铁皮石斛花红枣能一起泡茶吗,能泡茶的情况下它的作用是什么? 随手借下款通过但是没到账还让我还款怎么办? 随手借借钱有什么要求 随手借靠谱吗 如何烧鸡翅好吃 大班作业落叶散文怎么修改 随行借呗有人借到钱吗 大班语言 散文落叶PPT 随手微利,借呗,微驪K 到底跟谁借钱更划算 有哪些支付网站,支持visa或者万事达卡的 哪个平台可以用交行信用卡入金,VISA和万事达卡 哪些虚拟货币与万事达卡合作 支付宝扫码付款可以申请退款吗 支付宝条码付款怎么退款 支付宝刷条码怎么退款 支付宝上用二维码扫码付款后怎么退款 个体工商户办理网上营业执照材料指导多久电子签名 关于节气的谚语加翻译有哪些? 小蚂蚁补充句子怎么写? 小蚂蚁真的“登上珠穆朗玛,越过太平洋了吗? 小蚂蚁真顽强()把句子补充完整 小蚂蚁真聪明? 看图写话。小蚂蚁真想像鸟儿一样飞起来呀!它想了什么办法?结果怎么样呢?你来看图写几句话吧。 小蚂蚁真的登上了珠穆朗玛峰,越过太平洋了吗?请你把*告诉他。 小蚂蚁真有趣作文600字急…急… 小蚂蚁真是大力士是拟人还是夸张 哪里可以找到《小蚂蚁真团结》的快板词? 改为感叹句:小蚂蚁很团结。 除硅酸外有那些不溶性酸?