Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中resultset和mysql中cursor的区别_Java_Mysql - Fatal编程技术网

java中resultset和mysql中cursor的区别

java中resultset和mysql中cursor的区别,java,mysql,Java,Mysql,在使用java+mysql时,我提出了两种方法来遍历数据集 在sql中使用游标和存储过程,然后在java中执行,以查找用户是否存在 在java中使用“resultSet”查找用户是否存在 谁能告诉我哪种方法使用起来很有效以及为什么使用它?您应该避免使用最好的存储过程,因为它们比Java应用程序维护起来复杂得多,而且它们特定于目标数据库。您应该只对复杂用例使用存储过程,这些复杂用例由于语句/PreparedStatement而无法通过执行查询进行管理 换句话说,99.9%在大多数情况下,您的最佳选

在使用java+mysql时,我提出了两种方法来遍历数据集

  • 在sql中使用游标和存储过程,然后在java中执行,以查找用户是否存在

  • 在java中使用“resultSet”查找用户是否存在


  • 谁能告诉我哪种方法使用起来很有效以及为什么使用它?

    您应该避免使用最好的存储过程,因为它们比Java应用程序维护起来复杂得多,而且它们特定于目标数据库。您应该只对复杂用例使用存储过程,这些复杂用例由于
    语句
    /
    PreparedStatement
    而无法通过执行查询进行管理

    换句话说,
    99.9%
    在大多数情况下,您的最佳选择将是#2。

    “游标”是一个SQL概念
    ResultSet
    是Java中的一种编程类型。“游标”使用数据库语义,并通过SQL进行访问<代码>结果集使用类型/对象语义,可通过Java访问。“游标”直接控制SQL查询获取的数据量
    ResultSet
    通常不会,但会控制向Java程序公开的数据量。SQL查询获取的数据可能比
    ResultSet
    中显示的数据多,也可能不多

    像“游标”这样的SQL结构只能在数据上下文中使用。它是数据库的一部分。当您使用JDBC查询数据时,它不会阻止您需要
    ResultSet
    <代码>结果集是Java代码与查询结果交互的方式


    “游标”用于数据操作。这是只有数据操作才关心的事情
    ResultSet
    更容易消失,Java代码在检索查询数据时需要它。这是只有客户机代码才关心的事情。数据库不知道
    ResultSet
    。几乎在所有情况下,Java代码都不知道游标。

    使用resultSet是实现这一点的标准方法。很快,那么在编写java+mysql时使用游标有什么用呢?一些ppl认为黄瓜腌制后味道更好。这两种方法都有很大的偏差。使用
    WHERE
    子句,让服务器知道,如果有
    索引,几乎可以立即完成。尽量不要使用
    游标编写sql存储过程。同样,在存储过程中。