接手别人的项目现在每个方法都有一个关闭。
finally {
try {
rs.close();
pstmt.close();
rs2.close();
pstmt2.close();
rs3.close();
pstmt3.close();
rs4.close();
pstmt4.close();
rs5.close();
pstmt5.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}现在我想写个方法
private void CloseStatement(Statement ...st){
for (int i = 0; i < st.length; i++) {
if(st[i]!=null){
try {
st[i].close();
} catch (SQLException e) {
System.out.println("关闭Statement失败");
}
}
}
}不知道可行不?各位来指点下。原理上应该可以,不过由于自己不知道怎么测试,所以来问下大家了呵
finally {
try {
rs.close();
pstmt.close();
rs2.close();
pstmt2.close();
rs3.close();
pstmt3.close();
rs4.close();
pstmt4.close();
rs5.close();
pstmt5.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}现在我想写个方法
private void CloseStatement(Statement ...st){
for (int i = 0; i < st.length; i++) {
if(st[i]!=null){
try {
st[i].close();
} catch (SQLException e) {
System.out.println("关闭Statement失败");
}
}
}
}不知道可行不?各位来指点下。原理上应该可以,不过由于自己不知道怎么测试,所以来问下大家了呵
蛋疼
然后instanceof 一个方法都搞定了。真要这么做,如果全修改一下时间少的话,还是改程序吧
看到实际代码你会蛋碎一地的
一个servlet4000多行。
然后instanceof 一个方法都搞定了。
没有看太懂,可以贴个大概示范代码么。
* 参数顺序 ResultSet,然后Statement,最后Connection
* @param objs
*/
public static void close(Object ...objs)
{
for(int i = 0; i < objs.length; ++i)
{
if(objs[i] instanceof Statement)
{
try{
((Statement)objs[i]).close();
}catch(SQLException e){
}
}else if(objs[i] instanceof ResultSet){
try{
((ResultSet)objs[i]).close();
}catch(SQLException e){
}
}else if(objs[i] instanceof Connection){
try{
((Connection)objs[i]).close();
}catch(SQLException e){
}
}else{
/*...*/
}
}
}
/**
* 关闭数据库链接
* @param rs
* @param ps
* @param conn
*/
public static void close(ResultSet rs, PreparedStatement ps, Connection conn){
DBConnUtil.close(rs, ps, null, conn);
}
public static void close(ResultSet rs, Statement sm, Connection conn){
DBConnUtil.close(rs, null, sm, conn);
}
public static void close(ResultSet rs, PreparedStatement ps, Statement sm, Connection conn){
if(null != rs){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(null != ps){
ps.close();
}
if(null != sm){
sm.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}