rs st con ctx 分开捕捉异常
推荐2个文章吧
http://www.jspcn.net/htmlnews/11049341177961832.html
http://www.jaron.cn/chs_db/16/2003-09/20030916110224-101181.HTML另外好的连接池 加入单例模式
推荐2个文章吧
http://www.jspcn.net/htmlnews/11049341177961832.html
http://www.jaron.cn/chs_db/16/2003-09/20030916110224-101181.HTML另外好的连接池 加入单例模式
public Connection conn() throws Exception
{
try{ //容错 ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");
con = ds.getConnection();
return con;
}catch(NamingException e){
throw e;
}catch(Exception ex){
throw ex;
}
}
2 close方法有bug,rs/stat的异常会导致con没有关闭
总体思路是不错的,但是我看到close()里面怎么没有finally{}
这样对总体异常进行处理的,比方说rs关闭异常啦,那statement,con,rtx不久关闭不了了吗?
建议加一个finally{
}不管前面关闭怎么样,如果异常了啊,就统一在finally{}里面关掉它。
try{
if(rs != null)
{
rs.close();
}
}catch(SQLException ex){
throw ex;
}finally{
rs.close();
}
try{
if(st != null)
{
st.close();
}
}catch(SQLException ex){
throw ex;
}finally{
st.close();
} try{
if(con != null)
{
con.close();
}
}catch(SQLException ex){
throw ex;
}finally{
con.close();
}
}==============================
错误信息:
conn.java:138: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛
出
rs.close();
^
conn.java:135: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛
出
throw ex;
^
conn.java:152: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛
出
st.close();
^
conn.java:149: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛
出
throw ex;
^
conn.java:166: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛
出
con.close();
^
conn.java:163: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛
出
throw ex;
^
6 错误
看看是什么问题.
.
.
catch(SQLException ex){
ex.printStackTrace();
}
.
.
.