Java:一种方法中的顺序SQL语句问题
我正在用Java1.7编写一些应用程序。我想知道如果我使用连续的sql语句,将来会出现什么样的问题。preparedStatement和resultSet是否可能出现一些问题 我的代码如下所示:Java:一种方法中的顺序SQL语句问题,java,sql,Java,Sql,我正在用Java1.7编写一些应用程序。我想知道如果我使用连续的sql语句,将来会出现什么样的问题。preparedStatement和resultSet是否可能出现一些问题 我的代码如下所示: public multipleArrays selectQuery(id){ //INITIALIZATION CODE, MAKE CONNECTION, INITIALIZE QUERY preperedStatement= (PreparedStatement) connect
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。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
- 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
请求可能类似于:
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。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
- 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
请求可能类似于:
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。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
- 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
请求可能类似于:
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。因此,运行此代码可能需要一些时间(如果表上有正确的索引,则需要几毫秒)。
- 并行处理:如果另一个应用程序/线程在第一条语句和第二条语句之间删除用户,该怎么办?
请求可能类似于:
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在下面的一个回答中所指出的,你在想什么类型的问题?你不能使用连接查询来代替它吗