我是否将数据源查找放在资源的构造函数中,还是应该在每次我想使用数据库时发生?或者在一个不同的班级一起?这些是我正在谈论的两条线,我不知道应该在哪里移动它们:
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;
}
任何建议都是值得的,谢谢。
答案 0 :(得分:0)
也许你应该有一些ItemDAO
(数据访问对象),它将使用一些Item
从数据源中检索所需的Connection Pool
。然后这两行将在DAO
初始化。