Mengembalikan ResultSet
Apabila cuba membangunkan kaedah yang menanyakan pangkalan data dan mendapatkan semula keseluruhan jadual, tidak disyorkan untuk mengembalikan ResultSet secara langsung. Ini boleh menyebabkan kebocoran sumber dan keletihan sumber DB dengan sambungan dan pernyataan terbuka.
Untuk menangani isu ini, ResultSet seharusnya dipetakan kepada koleksi Javabeans, seperti ArrayList. Koleksi ini kemudiannya boleh dikembalikan melalui kaedah.
import java.util.ArrayList; import java.util.List; import java.sql.*; // Import necessary sql packages public class DatabaseOperations { public List<Biler> list() throws SQLException { List<Biler> bilers = new ArrayList<Biler>(); // Create an ArrayList to store Biler objects // Utilizing try-with-resources to automatically close resources try (Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement("SELECT id, name, value FROM Biler"); ResultSet resultSet = statement.executeQuery()) { // Iterate over the ResultSet and create Biler objects while (resultSet.next()) { Biler biler = new Biler(); biler.setId(resultSet.getLong("id")); biler.setName(resultSet.getString("name")); biler.setValue(resultSet.getInt("value")); bilers.add(biler); } } catch (SQLException e) { throw new SQLException("An error occurred while retrieving data from the database.", e); } return bilers; } }
Pendekatan ini memastikan keselamatan sumber dan membolehkan pemanggil mengakses data set hasil secara berstruktur.
Atas ialah kandungan terperinci Mengapa Anda Perlu Mengelakkan Mengembalikan ResultSet Secara Terus Apabila Menyoal Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!