2011/11/11 15:37

statement 와 prepareStatement


1.공통점 
 - statement 와 prepareStatement는 둘다 sql 쿼리를 날릴 때 사용한다.
2.statement
 - sql문을 매번 컴파일해서 실행.
3.prepareStatement
 - 컴파일을 한 상태에서 ? 해당하는 바인딩만  해서 실행
4.예제(statement)
  String sql = " select * from emp where emp_no = 1111;
  Statement st = con.createStatement();
  st = stme.executeQuery(sql)
위에서 검색 조건인 1111 대신 다른 값을 넣고 싶다면
다시 
  String sql = "select * from emp where emp_no = 2222;를 컴파일 해서 넣어야 할 것이다.
5. 예제(PreparedStatemnet)
  String sql = " select * from emp where emp_no = ?;
  PreparedStatement pstmt = con.PrepareStatement(sql);
  pstmt.setInt(1,1111);

 다른값을 넣고 싶을때에는 
 pstmt.setInt(1,2222); 이처럼 바인딩만 시켜주면 되기 때문에 String sql을 컴파일 할 필요가 없다.

6. 예제(statement, PreparedStatemnet- 반복 시행시)
* statement
  for (int i = 0; i <10000; i++){
stmt.execureUpdate("INSERT INTO TEST_TABLE_VALUES("+ content +  ");
}

* PreparedStatement
pstmt = conn.prepareStatement("INSERT INTO TEST_TABLE VALUES(?)");
  for(int i = 0; i <10000; i++){
    pstmt.setString(1, content + 1);
    pstmt.executeUpdate();
}



'bit's PROGRAMING > 04.JAVA' 카테고리의 다른 글

statement 와 prepareStatement  (0) 2011/11/11
Platform.jar(VariableList)  (0) 2011/11/11
setString()  (0) 2011/11/04
Interface PreparedStatement  (0) 2011/11/04
Byte ArrayInputStream / ByteArrayOutputStream  (0) 2011/11/04
(java) static 메서드  (0) 2011/10/31
Trackback 0 Comment 0
2011/11/11 14:19

Platform.jar(VariableList)

/** platform.jar의 주요 객체**/
1. PlatformRequest : XML 데이터 읽기
2. PlatformResponse: XML 데이터 출력
--1,2번 com.tobesoft.platform 패키지
3.VariableList: 변수 배열
4.DatasetList: Dataset 배열
--3,4번 com.tobesoft.platform.data 패키지

/**DB에서 조회한 내용을 Dataset에 맞는 형식의 XML로 **/
1. 기존에 사용하던 방식으로 select 해온다.
  (ResultSet 객체나, 아니면 옮겨 담아놓은 List와 같은 컬렉션 준비까지)
2.Service API 초기화
 /***** Service API 초기화 *******/
/** Input 부분 초기화 **/
VariableList in_vl = new VariableList();
DatasetList in_dl = new DatasetList();
PlatformRequest pReq = new PlatformRequest*(request, "edu-kr");

/** Web Server에서 xml 수신 및 Parsing ***/
pReq.receiveData();

/** List 획득 및 Dataset, 변수 획득 **/
in_vl = rPeq.getVariableList();
in_dl = pReq.getDatasetList();
Dataset ds = in_dl.getDataset("input");
String in_var1 = request.getParameter("in_var1");
String in_var2 = in_vl.getValuesAsString("in_var2");

/** Output 부분 초기화 **/
VariableList out_vl = new VariableList();
DatasetList out_dl = new DatsetList();
3. Dataset 객체 생성
(addColumn 매서드를 통해 컬럼들을 생성한다)
4. setColumn 매서드를 사용하여 select 해온 데이터를 Dataset 객체로 옮긴다.
5. Dataset 객체를 DatasetList 객체에 담는다. addDataset 매서드 이용.
6. VariableList에 에러코드와 에러매세지를 담아준다.
  (addStr 매서드 이용. 성공 기준 "ErrorCode","0"/ "ErrorMsg","SUCC"를 담아주면 된다)
7. 에러처리 try~catch 이용(에러처리는 6번과 동일)
8.xml로 만들어서 보내면 끝
(PlatformResponse 객체 이용. 메모리에 올리고, sendData 매서드로 가져올 변수 배열 과 데이터 셋 배을을 지정해주면 된다.)

'bit's PROGRAMING > 04.JAVA' 카테고리의 다른 글

statement 와 prepareStatement  (0) 2011/11/11
Platform.jar(VariableList)  (0) 2011/11/11
setString()  (0) 2011/11/04
Interface PreparedStatement  (0) 2011/11/04
Byte ArrayInputStream / ByteArrayOutputStream  (0) 2011/11/04
(java) static 메서드  (0) 2011/10/31
Trackback 0 Comment 0
2011/11/04 10:35

setString()

setString 메서드(SQLServerCallableStatement)

지정된 매개 변수를 지정된 java string 값으로 설정합니다.

* 구문
public void setString(java.lang.String.sCol,
    java.long.String s)

* 매개 변수
  sCol
  매개 변수 이름이 들어 있는 String 입니다
  s
  String 값입니다

* 사용예제

ptst.setString(1,id);
setStirng  매서드는 쿼리에 삽입된 값을 설정할 때 사용한다.
여러개 있을경우 setString(1,...) 두번째는 setString(2,...)..이런 형태로 값 저장이 가능하다.

'bit's PROGRAMING > 04.JAVA' 카테고리의 다른 글

statement 와 prepareStatement  (0) 2011/11/11
Platform.jar(VariableList)  (0) 2011/11/11
setString()  (0) 2011/11/04
Interface PreparedStatement  (0) 2011/11/04
Byte ArrayInputStream / ByteArrayOutputStream  (0) 2011/11/04
(java) static 메서드  (0) 2011/10/31
Trackback 0 Comment 0