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.
139 lines
4.4 KiB
139 lines
4.4 KiB
package kr.co.kihyun.db; |
|
|
|
import java.io.FileNotFoundException; |
|
import java.io.FileReader; |
|
import java.io.IOException; |
|
import java.sql.Connection; |
|
import java.sql.DriverManager; |
|
import java.sql.PreparedStatement; |
|
import java.sql.ResultSet; |
|
import java.sql.ResultSetMetaData; |
|
import java.sql.SQLException; |
|
import java.sql.Statement; |
|
import javax.naming.Context; |
|
import javax.sql.DataSource; |
|
|
|
public class DBPoolCmcp { |
|
//50.public static을 통한 선언 오류(CWE-500) Delete by YOUNGJUN,CHO |
|
//public static int conCount = 0; |
|
//------------------------------------------------ |
|
private static DataSource ds = null; |
|
private static Context ctx; |
|
|
|
ResultSet rs; |
|
Connection con; |
|
Statement stmt; |
|
PreparedStatement pstmt; |
|
ResultSetMetaData rsmd; |
|
String url; |
|
String user; |
|
String password; |
|
|
|
static { |
|
try{ |
|
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance(); |
|
}catch(ClassNotFoundException ex){ |
|
ex.printStackTrace(); |
|
}catch(IllegalAccessException ex){ |
|
ex.printStackTrace(); |
|
}catch(InstantiationException ex){ |
|
ex.printStackTrace(); |
|
} |
|
} |
|
|
|
public Connection getConnection() throws SQLException, FileNotFoundException, IOException { |
|
|
|
FileReader in = null; |
|
|
|
try { |
|
//FileReader in = new FileReader("/edudocs/wasapps/atswas/moumi_cmcp.properties"); |
|
in = new FileReader("/edudocs/wasapps/atswas/moumi_cmcp.properties"); |
|
|
|
int c; |
|
String s = new String(); |
|
|
|
while((c=in.read()) != -1){ |
|
s = s + (char)c; |
|
//System.out.println("test1:::::"+s); |
|
} |
|
|
|
String[] data = s.split(","); |
|
String[] subData=null; |
|
|
|
String connection1 = data[0]; |
|
String connection2 = data[1]; |
|
String connection3 = data[2]; |
|
|
|
//System.out.println("::host1::"+connection1+"\n::host2:"+connection2+"\n:::host3::"+connection3); |
|
//System.out.println(":::s::::"+s); |
|
|
|
url = connection1; |
|
user=connection2; |
|
password = connection3; |
|
|
|
//in.close(); |
|
|
|
//v2. 19.부적절한 자원 해제 (Database)_CWE-404 : Comment by YOUNGJUN,CHO |
|
// 미해결사유 : Connection 을 리턴하는 메서드인데 Connection 을 끊으라고 해결책으로 제시해줘서 해결 안함. |
|
con = DriverManager.getConnection(url,user,password); |
|
} catch(IOException ioex) { |
|
ioex.printStackTrace(); |
|
} catch(SQLException sqlex) { |
|
sqlex.printStackTrace(); |
|
} finally { |
|
//v2 21.부적절한 자원 해제 (IO)_CWE-404 : Add by YOUNGJUN,CHO |
|
// properties 파일을 읽은 후, finally 에서 닫도록 수정함. |
|
if(in != null) { |
|
in.close(); |
|
} |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} |
|
|
|
return con; |
|
} |
|
|
|
|
|
protected void close(Connection con) { |
|
try { |
|
if (con != null) |
|
con.close(); |
|
} catch (SQLException ex) { |
|
//31.오류 상황 대응 부재_CWE-390 Add by YOUNGJUN,CHO |
|
ex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} |
|
} |
|
|
|
protected void close(Statement stmt) { |
|
try { |
|
if (stmt != null) |
|
stmt.close(); |
|
} catch (SQLException ex) { |
|
//31.오류 상황 대응 부재_CWE-390 Add by YOUNGJUN,CHO |
|
ex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} |
|
} |
|
|
|
protected void close(PreparedStatement pstmt) { |
|
try { |
|
if (pstmt != null) |
|
pstmt.close(); |
|
} catch (SQLException ex) { |
|
//31.오류 상황 대응 부재_CWE-390 Add by YOUNGJUN,CHO |
|
ex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} |
|
} |
|
|
|
protected void close(ResultSet rs) { |
|
try { |
|
if (rs != null) |
|
rs.close(); |
|
} catch (SQLException ex) { |
|
//31.오류 상황 대응 부재_CWE-390 Add by YOUNGJUN,CHO |
|
ex.printStackTrace(); |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} |
|
} |
|
}
|
|
|