我正在构建一个REST
服务,其中包含的代码如下所示:
@PUT
@Produces(MediaType.APPLICATION_XML)
public Response updateOrder(
@HeaderParam("user") String user
){
CoffeeOrderDAO coffeeDAO = new CoffeeOrderDAOImpl();
....
coffeeDAO.method1();
....
coffeeDAO.method2();
....
CoffeeOrderDAOImpl
public class CoffeeOrderDAOImpl implements CoffeeOrderDAO{
Context ctx;
DataSource ds;
Connection conn;
public CoffeeOrderDAOImpl(){
try {
ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/coffeeDB");
conn = ds.getConnection();
} catch(SQLException e){
System.out.println("Exception:" + e);
} catch (NamingException ne) {
}
}
public String method1() {
}
public String method2() {
}
我的问题是,在调用这两种方法之前,我应该在两个method1()
和method2()
中关闭连接并创建一个新的CoffeeOrderDAO
对象吗?
OR
对两种方法使用相同的CoffeeOrderDAO
对象,只关闭method2()
第二个选项似乎很奇怪,因为知道连接何时关闭变得更加复杂。
创建多个CoffeeOrderDAO
对象是否合适?或者我错过了什么?
感谢您的帮助!
答案 0 :(得分:1)
如果有的话,你至少应该使用一些抽象而不是JDBC。你不应该自己处理错综复杂的连接。
查看this SO答案,了解此类工具的建议。这些工具为你做了所有繁重的工作。
除了使代码更容易出错之外,使用这些工具之一将使代码更具可读性,因为它将包含更少的样板代码