执行查询

可用

语句简介

所有 SQL 查询都可以有条件地分为两组:

  • 检索数据- 这些包括SELECT语句。
  • 修改数据——包括INSERTUPDATEDELETE语句。

对于第一组,使用我们已经熟悉的Statement接口方法- executeQuery()。原则上,这种方法已经足够入门了。它涵盖了您在实际工作中需要使用的很大一部分查询。

我们稍后会讨论更多选项,但现在,我建议您记住——如果您只想从表中获取数据,那么在绝大多数情况下executeQuery()方法将是正确的选择。

对于第二组请求,您需要使用 Statement 接口的另一个方法 - executeUpdate()与返回 ResultSet的 executeQuery()方法不同,此方法返回一个整数,告诉您在执行查询时表中有多少行被更改

例如,您可以使用DELETE FROM employee 语句删除所有行(因此要非常小心)。在这种情况下,executeUpdate()方法将返回已删除的行数。在某些情况下,了解更改的行数对于构建处理数据的算法很有用。

原则上,我们可以完成这道题——我们已经看到了主要的东西。对于数据获取 - executeQuery()。更改数据 - executeUpdate()

使用executeQuery()方法获取用户表中的用户数


	ResultSet results = statement.executeQuery("SELECT Count(*) FROM user");
	results.next();
    int count = results.getInt(1);

执行更新()

当您的查询更改表中的某些内容时,将使用executeUpdate()方法。它可以是任何东西:

  • 更新语句
  • 插入语句
  • 删除语句
  • CALL PROCEDURE语句

此方法返回更改(或删除)的行数。

让我们写一个请求,将我们所有员工的工资增加 1000 卢布。


   int rowsCount = statement.executeUpdate("UPDATE  employee SET salary = salary+1000");

在我运行这段代码后,它在我的表上返回了数字 6。我的表有 6 行。所以所有的线都被改变了。

执行()

有时,当您不确切知道必须执行什么请求(选择或数据更改)时,您的生活中可能会出现这种情况。在这种情况下,JDBC 的创建者为其添加了另一个通用方法 - execute()

此方法可用于代替executeQuery()executeUpdate()方法。您还记得这些方法有何不同吗?正确的。结果类型。因此,JDBC 的创造者想出了这样的解决方案。

execute()方法返回布尔值。如果此值为true,则表示正在进行数据提取请求,您需要调用getResultSet()方法来获取数据。例子:


    boolean hasResults = statement.execute("SELECT Count(*) FROM user");
    if ( hasResults ) {
        	ResultSet results =  statement.getResultSet();
        	results.next();
        	int count = results.getInt(1);
 	}

如果此值为false,则正在进行数据更改请求,您需要调用getUpdateCount()方法来获取更改的行数。例子:


    boolean hasResults = statement.execute("UPDATE  employee SET salary = salary+1000");
    if ( !hasResults ) {
      	int count = statement.getUpdateCount();
 	}

让我们编写一个显示查询结果的方法:


	public void executeAndPrintSQLQuery(String sqlQuery) {
 
        boolean hasResults = statement.execute(sqlQuery);
        if ( hasResults ) {
 	          ResultSet results =  statement.getResultSet();
           	System.out.println(“Your request lines below:);
 
           	while (results.next()) {
 	                 Integer id = results.getInt(1);
     	             String name = results.getString(2);
                      System.out.println(results.getRow() + ". " + id + "\t"+ name);
  	        }
       }
 	  else {
            int count = statement.getUpdateCount();
        	System.out.println(“Number of name strings:+ count);
  	}
}

这就是execute()方法通常在实践中的使用方式。

评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论