1. 플러그인 다운로드

 - http://www.eclipsetotale.com/tomcatPlugin.html


2. 압축을 풀어 이클립스의 plugins의 폴더에 넣는다.


3. 가장먼저 workspace를 웹폴더로 설정한다

  - JSP 환경에 맞게 환경설정을 새로 해야 하기 때문이다.


4. 이클립스를 실행하여 상단에 고양에 3마리 아이콘을 확인 한 후 환경설정에서 tomcat 메뉴를 확인

 1) tomcat

 - 현재 버전을 체크하고 설치된 폴더를 지정 해 준다.

 - context declaration mode 는 server.xml로 선택 한 후 conf폴더 밑에 server.xml을 선택한다.

 2) Advanced

  - 여기서도 톰캣의 홈을 설정

 3) Tomcat Manager App

  - 매니저의 ID와 PWD를 입력 후 저장!

'Programming > JAVA' 카테고리의 다른 글

HttpClient connection 설정 관련(timeout, RetryHandler)  (0) 2013.11.27
Using openCSV in JAVA  (0) 2013.11.20
JDBC 문법  (2) 2011.03.24
JDBC 설정  (2) 2011.03.24
JAVA IO  (1) 2011.03.24

1. JDBC 사용 기본 문법


 1) 가장 기본적인 문법.

 import java.sql.*;  //1. 임포트하자. 

public class JDBCTest {

public static void main(String[] args) {

//2. JDBC 드라이버 설치 (JAVA 설치되 경로의 ext 폴더에 넣어준다)

String driver = "oracle.jdbc.driver.OracleDriver";

String url = "jdbc:oracle:thin:@localhost:1521:XE";  //jdbc의 버전과 드라이버정보를 표기한 후 접속할 IP와 Port번호와 SID를 입력.

try{

Class.forName(driver);

}catch(ClassNotFoundException ex){

System.out.println("Class Not Found");

}

//3. Oracle DB에 Connection 하자.

//4. Statement  객체 생성하자.

//5. SQL 실행

// String sql = "SELECT SYSDATE FROM dual";

String sql = "Select zipcode, sido, gugun,dong,bunji From zipcode Where dong like '%야탑동%' Order by zipcode";

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

conn = DriverManager.getConnection(url,"scott","tiger");

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

rs.next(); // rs값의 첫번째 값을 읽는다!

java.util.Date now = rs.getDate(1);

System.out.println(now);

}catch(SQLException ex){

System.out.println(ex);

}

//6. Close 하자

finally{

try{

if(conn !=null) conn.close();

if(conn !=null) stmt.close();

}catch(SQLException ex){

System.out.println(ex);

}

}

}

}


 2) DriverManager를 이용해 Driver를 등록하는 방법

 import java.sql.DriverManager;

import java.sql.SQLException;

public class JDBCTest {

public static void main(String[] args) {

//DriverManager를 이용한 Driver Loading

try{

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 

//deregisterDriver로 해제 가능

System.out.println("성공");

}catch(SQLException ex){}

}

}



 3) properties를 이용한 DB 정보 입력

 public DBBean(){//Constructor

info = new Properties();

try{

info.load(new FileInputStream("D:\\OracleRoom\\dbinfo.properties"));

}catch(IOException ex){

System.out.println(ex.toString());

}

}







2. Java 에서 DB의 접근 속도를 줄이는법.

 1) Prepared Statement

   - 처음 문장을 선언할 때 문법 검사를 하지않고 마지막 값을 넣을 때 문법 검사를 하기때문에 속도가 더 빠르다.

 Connection conn = bean.getConnection();

int[] deptnoArray = {50,60,70,80,90};

String[] dnameArray = {"전산실","영업부","관리부","자재부","총무부"};

String[] locArray = {"서울","부산","대전","광주","대구"};

String sql = "Insert into dept(deptno, dname, loc) Values (?,?,?)"; //값을 넣지 않고 지나간다.

PreparedStatement pstmt = conn.prepareStatement(sql);

for (int i = 0; i < 5; i++) {

pstmt.setInt(1, deptnoArray[i]);

pstmt.setString(2, dnameArray[i]);

pstmt.setString(3, locArray[i]);

int row = pstmt.executeUpdate();

System.out.println(row +"개의 행이 반영됨");

}

bean.connClose();


 2) Batch 파일 형태로 쿼리를 한번에 모와서 실행하는 방법

 Connection conn = bean.getConnection();

int[] deptnoArray = {50,60,70,80,90};

String[] dnameArray = {"전산실","영업부","관리부","자재부","총무부"};

String[] locArray = {"서울","부산","대전","광주","대구"};

Statement stmt = conn.createStatement();

for (int i = 0; i < 5; i++) {

String sql = "Insert into dept values("+deptnoArray[i]+",'"+dnameArray[i]+"','" +locArray[i]+"')";

stmt.addBatch(sql);   // 쿼리문 저장,

}

int [] row = stmt.executeBatch();  //한번에 실행

System.out.println(row.length+"개의 행이 반영되었습니다");

bean.connClose();


'Programming > JAVA' 카테고리의 다른 글

Using openCSV in JAVA  (0) 2013.11.20
이클립스 JSP plug in / 환경설정  (3) 2011.03.24
JDBC 설정  (2) 2011.03.24
JAVA IO  (1) 2011.03.24
JAVA Threads  (2) 2011.03.24

1. MSSQL 같은 경우 driver를 직접 홈페이지에서 받아야 하지만, Oracle같은 경우는 설지할 때 설치경로의 jdbc 폴더 내에 압축파일로 저장되어있다. (ojdbc14.jar)

 1) JAVA에서 외부 프로그램의 드라이버를 저장하는 곳이 따로 있다. 바로,

 C:\Program Files\Java\jdk1.6.0_23\jre\lib\ext\ 아래에 복사하여 넣어둔다.

 2) 일반 사용자의 경우에는 

  C:\Program Files\Java\jre6\lib\ext\ 에 넣어둔다.


2. Eclipse 환경에서는 JDBC를 사용할 프로젝트만 Build Path 의 ADD external Archives에서 추가하면된다.



3. Eclipse 에서 Oracle Plug in 설치.

 1)http://quantum.sourceforge.net/    에서 플러그인을 다운

 2)com.quantum.feature_3.3.9_update_site_format.jar  의 압축을 푼다.

 3)그 폴더를 이클립스에서 help-Install new software... 에서 ADD한 후 local에 압축 푼 플러그인을 선택한다.

 4)프로그램을 재시작하여 Window-Perspective-Other.. 에 보면 Quantum DB를 선택할 수 있다. 

 5)이후 Database Bookmarks에 원하는 db를 추가하여 연결 할 수 있다. 드라이버는 oracle.jdbc.diver.OracleDriver를 선택.









ps-----------------------------------------------------------------------------


1) JDBC에서의 index는 Java에서 특별하게 1부터 시작한다.

'Programming > JAVA' 카테고리의 다른 글

이클립스 JSP plug in / 환경설정  (3) 2011.03.24
JDBC 문법  (2) 2011.03.24
JAVA IO  (1) 2011.03.24
JAVA Threads  (2) 2011.03.24
Java Call by value, Call by reference  (2) 2011.03.24

1. ASCII vs Unicode 

 1) xxx stream : 8비트

 2) xxx Reader, xxx Writer : 16비트 


2. Stream방식 vs RandomAccess 방식

 1) Stream : 파일을 순차적으로 나열하기 때문에 접근속도의 문자가있을 수 있다.

 2) RandomAccess : 파일을 랜덤하게 나열하고 키 로 접근할 수 있다.


3. File의 내용 vs Meta data

 1) 파일의 내용을 처리 할 것인가..

 2) 파일에 대한 정보를 처리 할 것인가..

----------------------------------------------------------------------------------------------

 

4. Stream

 1) Sesqence : 순차적이다

 2) Concurrency : 동시성이 없다.

 3) 동시성을 주기위해 Randeom Access 방식을 사용한다.


5. File~~stream : 모두 String 형태로 저장/로드 된다

 1) 파일 스트림에서 한글을 읽을때.

 FileInputStream fis = new FileInputStream(file);
  int readCount =0;
  byte[] buffer = new byte [1024]; // 한글을 읽어야 할 수 있기 때문에 바이트로 받는다. 배열의 크기는 OS 시스템에 맞게 1024정도를 준다. (한번에 1024바이트를 읽는다)
  while((readCount=fis.read(buffer))>=0){
   area.append(new String(buffer,0,readCount));
  }


6. Data~~stream : 데이터형이 유지된다 (int, double...)

 1) 데이터에서 한글을 읽을때

  DataOutputStream dos = null;
//  FileOutputStream fos = null;
  try{
  // fos = new FileOutputStream("D:\\data.dat");
   dos = new DataOutputStream(new FileOutputStream("D:\\data.dat")); //생성자 안에 생성자를 넣어 간소화 (하나만 close()할 수 있다)
   dos.writeBoolean(false);
   dos.writeInt(100);
   dos.writeDouble(89.0);
   dos.writeUTF("hello world");
   dos.writeUTF("안뇽하세염");  // 파일을 열어보면 글자가 깨져서 보이게된다.
  // dos.writeUTF("ㅋㅋㅋ");  //UTF를 지원하기때문에 한글은 UTF를 사용한다.
   System.out.println("파일 저장 완료~!");

 

7. InputStreamReader : 캐릭터형 문자를 바이트형으로 변환하여 받는다 (한글을 받을 수 있다)

 

 System.out.print("당신은 어떤 계절을 좋아하시나요?");
    BufferedReader br = null;
  String season = null;
  try{
   br = new BufferedReader(new InputStreamReader(System.in));  // 
   season =br.readLine();
   System.out.println(season);
   try{
    br.close();  //반드시 닫아야한다
    }catch(IOException ex){}
  }catch(IOException ex){
   
  }

 

8. RandomAccessFile : 파일을 동시에 읽으며 쓰는게 가능하지만 한글처리가 힘들다.

 1) long getFilePointer() : 파일의 위치를 가져온다.

 2) void seek(long pos) : 파일의 원하는 부위에 포인터를 가져다 놓을 수 있다.

 3) long length() : 파일의 길이를 가져온다. End of Point 를 알 수 있다.

 

 4) 한글과 영문을 변환 할 수 있도록 하는 메소드를 만든다.

 package StreamDemo;
import java.io.UnsupportedEncodingException;
public class CharacterConversion {
 public static String entoko(String en){
  String ko = null;
  try{
   ko = new String(en.getBytes("ISO8859_1"),"KSC5601"); //KSC5601 은 ANCI 형 이고, UTF-8은 바꿔 쓰면된다.
  }catch(UnsupportedEncodingException ex){
  }
  return ko;
 }
 public static String kotoen(String ko){
  String en = null;
  try{
   ko = new String(ko.getBytes("KSC5601"),"ISO8859_1");
  }catch(UnsupportedEncodingException ex){
  }
  return en;
 }
}

 

 

 

9. 문자를 파싱(Parsing)하는 3가지방법

 import java.util.Scanner;
// 문자 파싱하는 방법 3가지
public class ScannerDemo {
 public static void main(String[] args) {
  String line = "1101    조성모    45  78  23  100";
  //1. String class's split()
  String [] array = line.split("\\s+");
  //2. java.util.StringTokenizer 
  java.util.StringTokenizer st = new java.util.StringTokenizer(line);
  String [] array1 = new String[st.countTokens()];
  int i = 0;
  while(st.hasMoreElements()){
   array1[i++] = st.nextToken();
  }  
  //3. Scanner 쓰자.
  Scanner scan = new Scanner(line).useDelimiter("\\s+");
  while(scan.hasNext()){
   System.out.println(scan.next());
  }
  
 }
}

 

 

 

10. 직렬화 (Serializtion)

 1) 데이터를 Object형 째로 읽고 쓰는게 가능하다.

 2) 프리미티브 타입은 모두 직렬화가 가능하다. (모든 객체가 Serialization 가능한 것은 아니다.)

 3) Serializable 인터페이스를 상속받은 클래스만 가능하다. (Flag Interface) (String, Vector, ArrayList 등등...)

 4) transient private String author; 로 직렬화에 제외시킬 수 도 있다.

 5) Externalizable 인터페이스를 상속하여 직렬화 할 것만 선택 할 수도 있다.

 

 

11. JAVA NIO

 1) ByteBuffer

  - allocateDirect() : 직접 OS의 메모리에 접근 할 수 있는 입/출력 방식.

 

 

 

 

ps---------------------------------------------------------------

1. os별 파일과 경로 구분선 알아내는 방법

      System.getProperty("file.separator") // os에 종속적인 파일 구분선
      File.separator // os에 종속적이지 않은 구분선.
  

      System.getProperty("path.separator") // 경로 구분선
      File.pathSeparator

'Programming > JAVA' 카테고리의 다른 글

JDBC 문법  (2) 2011.03.24
JDBC 설정  (2) 2011.03.24
JAVA Threads  (2) 2011.03.24
Java Call by value, Call by reference  (2) 2011.03.24
The AWT Component Library  (1) 2011.03.24

+ Recent posts