java中的结果集和mysql中的游标之间的区别

时间:2016-06-20 18:36:43

标签: java mysql

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

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

  2. 在java中使用“resultSet”查找用户是否存在。

  3. 谁能告诉我使用哪种方法有效?为什么?

2 个答案:

答案 0 :(得分:3)

"光标"是一个SQL概念。 ResultSet是Java中的编程类型。 "光标"使用数据库语义,并通过SQL访问。 ResultSet使用类型/对象语义,可通过Java访问。 "光标"直接控制SQL查询提取的数据量。 ResultSet通常不会,但会控制向Java程序公开的数据量。 SQL查询提取的数据可能有也可能没有,而不是ResultSet中显示的数据。

SQL结构,如" cursor"应该只在数据上下文中使用。它是数据库的一部分。当您使用JDBC查询数据时,它不会阻止您需要ResultSetResultSet是Java代码与查询结果交互的方式。

"光标"用于数据操作。这只是数据操作所关心的事情。在检索查询数据时,Java代码需要ResultSet更加消逝。这只是您的客户端代码所关心的事情。数据库无法识别ResultSet。在几乎所有情况下,您的Java代码都不会识别游标。

答案 1 :(得分:1)

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

换句话说,99.9 %当时,你最好的选择是#2。