Java:一种方法中的顺序SQL语句问题

Java:一种方法中的顺序SQL语句问题,java,sql,Java,Sql,我正在用Java1.7编写一些应用程序。我想知道如果我使用连续的sql语句,将来会出现什么样的问题。preparedStatement和resultSet是否可能出现一些问题 我的代码如下所示: public multipleArrays selectQuery(id){ //INITIALIZATION CODE, MAKE CONNECTION, INITIALIZE QUERY preperedStatement= (PreparedStatement) connect

我正在用Java1.7编写一些应用程序。我想知道如果我使用连续的sql语句,将来会出现什么样的问题。preparedStatement和resultSet是否可能出现一些问题

我的代码如下所示:

 public multipleArrays selectQuery(id){

 //INITIALIZATION CODE, MAKE CONNECTION, INITIALIZE QUERY

      preperedStatement= (PreparedStatement) connection.prepareStatement("SELECT * FROM USER WHERE id_user = ? ");
      preperedStatement.setInt(1, id);
      resultSet = preperedStatement.executeQuery();
      //CREATE ARRAYLIST OF PRIVATE OBJECT USER //

      id = resultSet.getInt("role_id");
      preperedStatement= (PreparedStatement) connection.prepareStatement("SELECT * FROM ROLE WHERE id_role= ? ");
      preperedStatement.setInt(1, id);
      resultSet = preperedStatement.executeQuery();
      //CREATE ARRAYLIST OF PRIVATE OBJECT ROLE //

      id=resultSet.getInt("data_id");
      preperedStatement= (PreparedStatement) connection.prepareStatement("SELECT * FROM DATA WHERE id_data = ? ");
      preperedStatement.setInt(1, id);
      resultSet = preperedStatement.executeQuery();
      //CREATE ARRAYLIST OF PRIVATE OBJECT DATA //

      id=resultSet.getInt("issue_id");
      preperedStatement= (PreparedStatement) connection.prepareStatement("SELECT * FROM ISSUE WHERE issue_id = ? ");
      preperedStatement.setInt(1, id);
      resultSet = preperedStatement.executeQuery();
      //CREATE ARRAYLIST OF PRIVATE OBJECT ISSUE//

      //CLOSE CONNECTION AND RETURN MULTIPLE ARRAYS
 }

您将来可能会遇到的主要问题是:
  • 在性能方面,每次运行查询时都要往返到SQL server。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
  • 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
使用单个查询将向SQL server发出单个请求并以原子方式执行。
请求可能类似于:

select * from ISSUE i, DATA d, ROLE r, USER u WHERE u.id_user = ? 
AND r.id_role = u.role_id AND data.id_data = r.data_id 
AND i.issue_id = d.issue_id; 

您将来可能会遇到的主要问题是:
  • 在性能方面,每次运行查询时都要往返到SQL server。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
  • 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
使用单个查询将向SQL server发出单个请求并以原子方式执行。
请求可能类似于:

select * from ISSUE i, DATA d, ROLE r, USER u WHERE u.id_user = ? 
AND r.id_role = u.role_id AND data.id_data = r.data_id 
AND i.issue_id = d.issue_id; 

您将来可能会遇到的主要问题是:
  • 在性能方面,每次运行查询时都要往返到SQL server。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
  • 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
使用单个查询将向SQL server发出单个请求并以原子方式执行。
请求可能类似于:

select * from ISSUE i, DATA d, ROLE r, USER u WHERE u.id_user = ? 
AND r.id_role = u.role_id AND data.id_data = r.data_id 
AND i.issue_id = d.issue_id; 

您将来可能会遇到的主要问题是:
  • 在性能方面,每次运行查询时都要往返到SQL server。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
  • 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
使用单个查询将向SQL server发出单个请求并以原子方式执行。
请求可能类似于:

select * from ISSUE i, DATA d, ROLE r, USER u WHERE u.id_user = ? 
AND r.id_role = u.role_id AND data.id_data = r.data_id 
AND i.issue_id = d.issue_id; 


如果它现在起作用了,它应该继续起作用,只要你明白你想做什么。继续执行程序,直到遇到错误。从那里,您可以调试代码,并修复问题。您的代码似乎足够干净,因此您可以轻松地识别出发生的任何错误。稍后测试您的代码,如果您稍后遇到错误,请就特定问题寻求帮助。

如果它现在起作用,只要您了解您要做的事情,它应该继续起作用。继续执行程序,直到遇到错误。从那里,您可以调试代码,并修复问题。您的代码似乎足够干净,因此您可以轻松地识别出发生的任何错误。稍后测试您的代码,如果您稍后遇到错误,请就特定问题寻求帮助。

如果它现在起作用,只要您了解您要做的事情,它应该继续起作用。继续执行程序,直到遇到错误。从那里,您可以调试代码,并修复问题。您的代码似乎足够干净,因此您可以轻松地识别出发生的任何错误。稍后测试您的代码,如果您稍后遇到错误,请就特定问题寻求帮助。

如果它现在起作用,只要您了解您要做的事情,它应该继续起作用。继续执行程序,直到遇到错误。从那里,您可以调试代码,并修复问题。您的代码似乎足够干净,因此您可以轻松地识别出发生的任何错误。稍后测试您的代码,如果您稍后遇到错误,请就特定问题寻求帮助。

您考虑的是哪种类型的问题?不能改用联接查询吗?为什么不测试您的代码?如果它现在运行良好,为什么将来会失败?Java不会突然决定自下而上执行这些语句。理想情况下,应该关闭资源。有4种不同的准备报表和4种不同的结果集。在会话超时之前,服务器可能会一直打开游标。不过,这看起来与easy相反。反复访问数据库。执行一个查询可能是更好的选择,正如Nicholas在下面的一个回答中所指出的,你在想什么类型的问题?你不能只使用一个连接查询吗?为什么不测试你的代码?如果它现在运行良好,为什么将来会失败?Java不会突然决定自下而上执行这些语句。理想情况下,应该关闭资源。有4种不同的准备报表和4种不同的结果集。在会话超时之前,服务器可能会一直打开游标。不过,这看起来与easy相反。反复访问数据库。执行一个查询可能是更好的选择,正如Nicholas在下面的一个回答中所指出的,你在想什么类型的问题?你不能只使用一个连接查询吗?为什么不测试你的代码?如果它现在运行良好,为什么将来会失败?Java不会突然决定自下而上执行这些语句。理想情况下,应该关闭资源。有4种不同的准备报表和4种不同的结果集。在会话超时之前,服务器可能会一直打开游标。不过,这看起来与easy相反。反复访问数据库。执行单个查询可能是更好的选择,正如Nicholas在下面的一个回答中所指出的,你在想什么类型的问题?你不能使用连接查询来代替它吗