Я помещаю поиск источника данных в конструктор ресурса, или это должно происходить каждый раз, когда я хочу использовать базу данных?Или в другом классе все вместе?Это две строки, о которых я говорю, и я не знаю, куда мне их переместить:
initContext = new InitialContext();
dataSource = (DataSource)initContext.lookup("java:comp/env/jdbc/dbName");
Какие еще методы я могу использовать, чтобы отделить работу БД от метода GET?Вот мой код, так что вы не можете увидеть все это одним способом, который я хочу изменить:
@GET
@Produces(MediaType.TEXT_XML)
public List<Item> getItemsBrowser(){
DataSource dataSource = null;
java.sql.Connection connection;
java.sql.Statement statement;
List<Item> items = new ArrayList<Item>();
javax.naming.Context initContext;
try {
initContext = new InitialContext();
dataSource = (DataSource)initContext.lookup("java:comp/env/jdbc/dbName");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ResultSet resultSet = null;
try {
connection = dataSource.getConnection();
statement = connection.createStatement();
String query = "SELECT * FROM ITEMS";
resultSet = statement.executeQuery(query);
// Fetch each row from the result set
while (resultSet.next()) {
String a = resultSet.getString("itemID");
String b = resultSet.getString("itemDescription");
//Assuming you have a user object
Item item = new Item(a, b);
items.add(item);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return items;
}
Любой совет оценен, спасибо.