You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.0 KiB
162 lines
4.0 KiB
package kr.co.kihyun.db; |
|
|
|
import java.sql.Connection; |
|
import java.sql.PreparedStatement; |
|
import java.sql.ResultSet; |
|
import java.sql.SQLException; |
|
import java.sql.Statement; |
|
|
|
public class CommonDBManager extends DBPool { |
|
|
|
public Connection con = null; |
|
public PreparedStatement pstmt = null; |
|
public Statement stmt = null; |
|
private boolean isStackTraced = true; |
|
String url = null; |
|
String user = null; |
|
String password = null; |
|
|
|
public void setStatment(StringBuilder sql, Object... params) throws SQLException, FixMeJDOException{ |
|
this.setStatment(sql.toString(), params); |
|
} |
|
|
|
public void setStatment(String sql, Object... params) throws SQLException, FixMeJDOException { |
|
|
|
if (con == null || con.isClosed()) { |
|
con = getConnection(); |
|
} |
|
pstmt = con.prepareStatement(sql); |
|
|
|
for (int i = 0; params != null && i < params.length; i++) { |
|
if (params[i] instanceof java.util.Date) { |
|
java.util.Date param = (java.util.Date) params[i]; |
|
pstmt.setDate(i + 1, new java.sql.Date(param.getTime())); |
|
} else if (params[i] instanceof Boolean) { |
|
pstmt.setBoolean(i + 1, (Boolean) params[i]); |
|
if (!isStackTraced) |
|
throw new FixMeJDOException("BOOLEAN PARAM " + i + "\n" + sql); |
|
} else { |
|
pstmt.setObject(i + 1, params[i]); |
|
} |
|
} |
|
} |
|
|
|
public ResultSet execQuery(StringBuilder sql, Object... params) throws SQLException { |
|
return this.execQuery(sql.toString(), params); |
|
} |
|
|
|
|
|
public ResultSet execQuery(String sql, Object... params) throws SQLException { |
|
try { |
|
setStatment(sql, params); |
|
} catch (FixMeJDOException sqlEx) { |
|
sqlEx.printStackTrace(); |
|
isStackTraced = true; |
|
execQuery(sql, params); |
|
} |
|
return pstmt.executeQuery(); |
|
} |
|
|
|
public int execUpdate(StringBuilder sql, Object... params) throws SQLException { |
|
return this.execUpdate(sql.toString(), params); |
|
} |
|
|
|
|
|
public int execUpdate(String sql, Object... params) throws SQLException { |
|
try { |
|
setStatment(sql, params); |
|
} catch (FixMeJDOException sqlEx) { |
|
sqlEx.printStackTrace(); |
|
isStackTraced = true; |
|
execUpdate(sql, params); |
|
} |
|
return pstmt.executeUpdate(); |
|
} |
|
//디비 코밋 작업후 컨넥션 끊는 구문. 중요 |
|
public int executeUpdate(String sql, Object... params) throws Exception { |
|
int result = 0; |
|
|
|
try { |
|
setStatment(sql, params); |
|
result = pstmt.executeUpdate(); |
|
con.commit(); |
|
}catch(SQLException e){ |
|
con.rollback(); |
|
}catch(Exception e){ |
|
con.rollback(); |
|
}finally{ |
|
if(pstmt != null){ |
|
try{ |
|
pstmt.close(); |
|
}catch(Exception e){ |
|
e.printStackTrace(); |
|
} |
|
} |
|
if(con != null){ |
|
try{ |
|
con.close(); |
|
}catch(Exception e){ |
|
e.printStackTrace(); |
|
} |
|
} |
|
} |
|
return result; |
|
} |
|
public boolean execute(String sql, Object... params){ |
|
boolean rslt=false; |
|
Statement stmt = null; |
|
try { |
|
if (con == null || con.isClosed()) { |
|
con = getConnection(); |
|
} |
|
con.setAutoCommit(true); |
|
stmt = con.createStatement(); |
|
rslt=stmt.execute(sql); |
|
|
|
} catch (SQLException e) { |
|
e.printStackTrace(); |
|
} catch (Exception e) { |
|
e.printStackTrace(); |
|
}finally{ |
|
try{ |
|
if(stmt!=null)stmt.close(); |
|
execClose(); |
|
}catch(Exception e){ |
|
e.printStackTrace(); |
|
} |
|
} |
|
return rslt; |
|
} |
|
|
|
public void commit(){ |
|
try{ |
|
con.commit(); |
|
} catch (SQLException e) { |
|
e.printStackTrace(); |
|
} |
|
} |
|
|
|
public void rollback(){ |
|
try{ |
|
con.rollback(); |
|
} catch (SQLException e) { |
|
e.printStackTrace(); |
|
} |
|
} |
|
|
|
public void pstmtClose(){ |
|
try { |
|
if (null != pstmt) |
|
pstmt.close(); |
|
} catch (SQLException ex) { |
|
//31.오류 상황 대응 부재_CWE-390 Add by YOUNGJUN,CHO |
|
ex.printStackTrace(); |
|
} |
|
} |
|
|
|
public void execClose() { |
|
if (null != stmt) close(stmt); |
|
if (null != pstmt) close(pstmt); |
|
if (null != con) close(con); |
|
} |
|
}
|
|
|