커넥션 풀

 jdbc를 사용하여 db에 접속하기 위해서는 드라이버를 로드하고 connection 객체를 생성해야 한다. 이 경우 db에 접속할 때마다 드라이버를 로드하고 커넥션 객체를 생성하고 close해야 하는데 접속자가 많을 경우 서버에 부하를 줄 수 있다.

 이를 해결하기 위해 커넥션 풀을 사용한다.

 

1. Connection pool

 

db와 연결된 connection을 미리 만들어 pool속에 저장했다가 접속이 필요한 때에 불러와 사용하고 다시 pool로 반환하는 기법. 다 사용한 커넥션을 재사용 하기 때문에 다시 커넥션을 생성 할 필요가 없다.

 

2. 커넥션 풀 사용하기.

 

2-1. 라이브러리 다운.

 

- http://commons.apache.org/proper/commons-collections/

- http://commons.apache.org/proper/commons-dbcp/

- http://commons.apache.org/proper/commons-pool/

 각각 접속하여 다운 받는다.

 

2-2. 코드 추가.

 

- /META-INF/context.xml

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Context>
<!-- 오라클 db에 접속하기 위한 코드 --><!-- 이름을 잘 기억하고 있어야 한다. -->
<Resource     name="jdbc/myoracle"
            auth="Container"
            type="javax.sql.DataSource" 
            driverClassName="oracle.jdbc.driver.OracleDriver"
            url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
            username="scots" password="tiges"
            maxActive="20" maxIdle="10" maxWait="-1"/>
<!-- mysql db에 접속하기 위한 코드 -->
<Resource    name="jdbc/mymysql"
            auth="Container"
            type="javax.sql.DataSource"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://127.0.0.1:3306/exam"
            username="root" password="java1234"                   
            maxActive="200" maxIdle="100" maxWait="-1"/>    
 
</Context>

 

-/WEB-INF/web.xml <web-app>태그 사이에 추가.

1
2
3
4
5
6
  <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>

 

 

2-3. jdbc에 적용.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class DBManager {
    public static Connection getConnection(){
        Connection conn = null;
        try{
          // 이부분을 추가하면 된다.
        Context initContext = new InitialContext();
        Context envContext  = (Context)initContext.lookup("java:/comp/env");        
        DataSource ds = (DataSource)envContext.lookup("jdbc/mymysql");//"jdbc/myoracle"
        conn = ds.getConnection();
        
        }catch(Exception e){
            e.printStackTrace();
        }
        return conn;
    }
}

댓글()

[9.30]R.java 와 AndroidManifest.xml

웹 & 안드로이드/Android|2013. 9. 30. 16:01

1. R.java


- 모든 리소스는 R.java에 등록이 된다.

- 따라서 리소스를 호출할 때에는 R.java파일을 통하면 된다.

- 가장 중요한 파일.

- 전부 final과 static이다. 한번 실행되면 변수값 수정과 메소드 오버라이딩이 불가능하고, new연산자로 생성하지 않고 호출이 가능하다.

- 프로젝트를 생성하면 생기는 기본파일. 
R.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.wakeup5.hello;
 
public final class R {
    public static final class attr {
    }
    public static final class dimen {
  
        public static final int activity_horizontal_margin=0x7f040000;
        public static final int activity_vertical_margin=0x7f040001;
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class id {
        public static final int action_settings=0x7f080001;
        public static final int button1=0x7f080000;
    }
    public static final class layout {
        public static final int activity_main=0x7f030000;
    }
    public static final class menu {
        public static final int main=0x7f070000;
    }
    public static final class string {
        public static final int action_settings=0x7f050001;
        public static final int app_name=0x7f050000;
        public static final int hello_world=0x7f050002;
    }
    public static final class style {
    
        public static final int AppBaseTheme=0x7f060000;
    
        public static final int AppTheme=0x7f060001;
    }
}


-리소스 호출 방법.

MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.wakeup5.hello;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//R을 통해 activity_main라는 뷰를 호출했다. 
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}




2. AndroidManifest.xml


- 웹 어플리케이션에 비교하면 web.xml에 해당하는 파일

- 여기에는 안드로이드 고유 이름과 버전이 들어있어, 중요한 파일이다.

- 컴포넌트 생성과 액티비티라는 컴포넌트와 뷰에 해당하는. xml파일을 연결해주는 역할



- AndroidManifest.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wakeup5.hello"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" ><!--모든 컴포넌트는 여기에 등록을 해야한다. -->
        <activity
            android:name="com.wakeup5.hello.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <!--해당 액티비티를 메인 액티비티라고 설정함. -->
                <category android:name="android.intent.category.LAUNCHER" />
                <!--해당 액티비티를 안드로이드 런처에 등록. -->
            </intent-filter>
        </activity>
    </application>
 
</manifest>
 



-진동, gps사용등 퍼미션(권한)설정을 할 수 있다.


댓글()

[9.30]안드로이드 project 시작

웹 & 안드로이드/Android|2013. 9. 30. 15:20

안드로이드 어플리케이션 프로젝트 생성




1. package name 설정.


-package name : 모든 어플리케이션은 고유의 이름을 가진다. 그 어떤 어플리케이션과도 중복되는 이름이 되어서는 안된다.




2. activity 생성.


activity는 화면에 보이는 것. 하나의 activity는 어플리케이션의 한 페이지의 화면이다.


- 안드로이드의 컴포넌트는 4개. 그중 화면에 보이는것은 activity 즉, ui를 가질 수 잇는것.







- activity종류

blank : 보통의 어플리케이션의 화면을 보여주는 액티비티. 풀스크린이 아닌 화면.

fullscreen : 게임화면같은 화면 전체를 사용하는 액티비티.

master/detail flow : 시작할때 어떤 액티비티를 보여줄지 선택할수 있는 액티비티




3.메인 액티비티 이름 설정.


- 안드로이드 어플리케이션은 뷰/기능을 분리시켰다. 액티비티는 반드시 하나의 뷰파일을 가져야 한다.

- 액티비티 이름은 MainActivity, 이 것이 가지는 뷰는 activity_main이라는 xml파일이다.





4.완료


-finish를 클릭하면 하나의 프로젝트가 생성된다.



댓글()

[9.30]안드로이드 개발을 위한 설치와 셋팅

웹 & 안드로이드/Android|2013. 9. 30. 09:46

0. 선행 설치 - 먼저 jdk 설치가 되어 있어야 함.


1. ADT와 Android SDK 설치


1-1. ADT(Andriod developer tool) 다운로드와 실행.

Andriod developer tool : 안드로이드 개발을 위한 툴

- 설치 되는 것


http://developer.android.com/index.html 페이지 접속.








컴퓨터에 따라 32-bit 혹은 64-bit를 선택후 다운 받으면 된다.





다운로드를 받고 압축을 풀면 안드로이드 개발을 위한 플러그인이 깔린 이클립스가 있다.


이클립스를 실행하면 다운로드 끝.


1-2.Andloid SDK 설치하기.




-설치 할 것을 체크후 인스톨을 누른다.(이경우는 학습을 위해 전부 다운 받음.)





- 전부 동의후 인스톨을 누르면 다운로드와 설치가 시작된다.

- 전부 다운 받을 시 용량이 4Gb정도 되니 하드디스크 여유 용량을 확보하면 좋다.




2.셋팅하기


2-1 Android Virtual Device 셋팅


-클릭.



-새로운 셋팅을 위해 new를 누른다.




- 밑줄 친 입력폼은 필수.


- 상자는 옵션

* keyboard : 에큘을 사용하는데 실제 키보드를 사용할 수 있도록 하는것.



- 새로 생성이 되었으면 start 버튼을 누른다.



- 상자는 윈도우 화면에 뜨는 에뮬레이터 크기를 설정. screen size를 7정도로 하면 좋다.

- wipe user data : 실행 할때 에뮬레이터 상태를 초기화함.



- launch 버튼을 누르면 에뮬레이터가 실행 된다.


'웹 & 안드로이드 > Android' 카테고리의 다른 글

[10.1]이벤트 처리  (2) 2013.10.01
안드로이드 컴포넌트  (0) 2013.10.01
ADT 안드로이드 프로젝트 구조  (0) 2013.10.01
[9.30]R.java 와 AndroidManifest.xml  (0) 2013.09.30
[9.30]안드로이드 project 시작  (0) 2013.09.30

댓글()

[이클립스 플러그인]SubVersive, svnConnector(svn 설치)

인스톨창을 실행하는 메뉴 위치.


1.svn을 위한 SubVersive플러그인 설치.



 - http://download.eclipse.org/technology/subversive/1.1/update-site/ (버전이 바뀔경우 주소가 달라질 수 있다.) 

주소를 넣으면 리스트가 뜬다. SVN Team을 선택후 next를 눌러 설치한다.

 

- 설치 완료가 되면 이클립스가 재부팅 된다.






2.svnConnector 플러그인 설치

 


- http://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/ (버전이 바뀔경우 주소가 달라질 수 있다.) 입력후 리스트가 뜨면 SVN Kit중 버전을 선택한 후 next를 눌러 설치를 시작한다.


- 1.3.8 버전 외에 여러가지가 있으므로 잘 선택하여 설치한다.




3. connector 버전 확인, 선택하기






'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글

추상클래스, 인터페이스  (0) 2013.10.01
커넥션 풀  (0) 2013.09.30
아파치/톰캣 설치하기  (0) 2013.09.27
[자바 라이브러리]JDBC  (0) 2013.09.27
자바 개발을 위한 이클립스 설치하기  (0) 2013.09.27

댓글()

아파치/톰캣 설치하기

 다운로드 페이지 - http://tomcat.apache.org/


웹서버(아파치)와 웹 컨테이너(톰캣)이 합쳐진


웹 어플리케이션이다.


실행 하기 위해서는


jdk/bin 폴더를 PATH 에, 


jdk를 JAVA_HOME,


jre를 JRE_HOME 으로 패스를 잡아야 한다.


이클립스 쓰면 할 필요 없음.



댓글()

[자바 라이브러리]JDBC

http://cafe.naver.com/jjdev/768?social=1


http://dev.mysql.com/downloads/connector/j/

댓글()

자바 개발을 위한 이클립스 설치하기


Eclipse IDE for Java EE Developers 자바 개발을 위한 툴.


다운로드 페이지 - http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/R/eclipse-jee-kepler-R-win32.zip


'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글

아파치/톰캣 설치하기  (0) 2013.09.27
[자바 라이브러리]JDBC  (0) 2013.09.27
자바 설치하기. JDK(SE)7  (0) 2013.09.27
[Servlet] Listener  (0) 2013.09.27
[Servlet] Filter  (0) 2013.09.27

댓글()

MySql 설치하기

웹 & 안드로이드/DataBase|2013. 9. 27. 16:27

Mysql Community Server 5.5버전




다운로드 페이지 - http://www.mysql.com/downloads/




heidisql : mysql gui 관리 툴.


다운로드 페이지 - http://www.heidisql.com/

댓글()

자바 설치하기. JDK(SE)7

다운로드 링크 - http://www.oracle.com/us/downloads/index.html


설명 

http://arabiannight.tistory.com/302


패스 잡는법


jdk/bin 폴더를 PATH에 추가 한다.


이클립스 쓰면 할 필요 없음

'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글

[자바 라이브러리]JDBC  (0) 2013.09.27
자바 개발을 위한 이클립스 설치하기  (0) 2013.09.27
[Servlet] Listener  (0) 2013.09.27
[Servlet] Filter  (0) 2013.09.27
[Servlet] Filter와 listener  (0) 2013.09.26

댓글()