2016년 12월 18일 일요일

[java] sql 실행하기

DBConnectionPool connPool = null;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
CallableStatement cstmt = null;
.
.
.
.

역시 커넥션 풀은 커넥션 객체가 싱글톤으로 셋팅 되었다고 가정한다.


try{      

        //sql 구문 . 주의 할점 . 문자열을 더할때 앞 1칸은 공백으로 한다. 그러지 않으면
        //문자열이 붙어서 sql 을 인식하지못함.

String sql = "";
sql +=" SELECT";
sql +=" A.MB_SEQ";
sql +=" ,A.MB_NICKNAME";
sql +=" ,A.MB_LEVEL";
sql +=" ,A.MB_LAST_LOGIN_IP";
sql +=" FROM MB_MEMBER A";
sql +=" WHERE 1=1";
sql +=" AND A.MB_ISADMIN = 1";
sql +=" AND MB_SEQ NOT IN (240,293,294,3129)";
sql +=" AND MB_SEQ NOT IN (";
sql +=" SELECT ";
sql +=" DISTINCT(CMT_WRITER_SEQ)";
sql +=" FROM CMT_COMMENT";
sql +=" WHERE";
sql +=" AC_ARTICLE_SEQ= ?)";
sql +=" AND MB_SEQ != (SELECT AC_WRITER_SEQ FROM AC_ARTICLE WHERE"             sql +=" AC_ARTICLE_SEQ = ?)";
sql +=" ORDER BY RAND()";
sql +=" LIMIT 1";

        //커넥션 얻기
conn = connPool.getConnection();
        //스테이트 먼트에 sql 담기
        //쿼리 캐싱이 필요한경우는 prepareStatement 로 쓰고 그러지 않으면 걍 Statement
        //로 사용

pstmt = conn.prepareStatement(sql);

        // ? 순서대로 파라미터 셋팅.
pstmt.setLong(1, ac_article_seq);
pstmt.setLong(2, ac_article_seq);

        //쿼리 실행
rs = pstmt.executeQuery();

        //컬럼명으로 읽어드리기
while(rs.next()){
member.put("MB_SEQ", rs.getString("MB_SEQ"));
member.put("MB_NICKNAME", rs.getString("MB_NICKNAME"));
member.put("MB_LEVEL", rs.getString("MB_LEVEL"));
member.put("MB_LAST_LOGIN_IP", rs.getString("MB_LAST_LOGIN_IP"));
}
}catch(Exception e){

}finally{
if(rs != null){ try{ rs.close(); }catch(SQLException e){} }
        if(pstmt != null){ try{ pstmt.close(); }catch(SQLException e){} }
        //커넥션 반환.
        connPool.returnConnection(conn);
}

댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1