본문 바로가기

WebStudy

DB싱글톤 방식, ConnectionPool

private static DbDao instance = new DbDao();
 
 public static DbDao getInstance(){
  return instance;
 }
 private DbDao(){
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   String url = "jdbc:oracle:thin:@localhost:1521:xe";
   con = DriverManager.getConnection(url, "hr", "1234");
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

 

커넥션 풀 ----------------------

 

3개의 파일을 lib 폴더에 저장.

 

commons-dbcp2-2.1.jar
commons-logging-1.2.jar
commons-pool2-2.3.jar

 

context.xml 생성 (META-INF)

<Context>
 <Resource name="jdbc/OracleDB"
 auth="Container"
 type="javax.sql.DataSource"
 username="hr"
 password="1234"
 driverClassName="oracle.jdbc.driver.OracleDriver"
 factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
 url="jdbc:oracle:thin@localhost:1521:xe"
 maxActive="8"<!-- 8개의 커넥션을 만든다. -->
 maxIdle="5"/><!--사용이 없을시 최대 5개의 슬립을 사용-->
</Context>

 

web.xml에 아래 내용 추가 .

 

<resource-ref>
   <description>Connection</description>
   <res-ref-name>jdbc/OracleDB</res-ref-name>
   <res-type>javax.sql.dataSource</res-type>
   <res-auth>Container</res-auth>
  </resource-ref>

 

Dao java----------------------

 

private static DbDao instance = new DbDao();
 
 public static DbDao getInstance(){
  return instance;
 }

private DbDao(){
  Context init;
  try {
   init = new InitialContext();
   DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
   con = ds.getConnection();
  } catch (NamingException | SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

 

 

'WebStudy' 카테고리의 다른 글

cookie  (0) 2015.06.23
jstl tag  (0) 2015.06.23
session 에 관한 ...  (0) 2015.06.22
jqeury servelt ajax  (0) 2015.06.22
비동기 통신 JSON  (0) 2015.06.22