좌선
좌선의 개발일지
좌선
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • 개발환경 (3)
    • 알고리즘 (10)
      • 코딩테스트 (9)
      • 알고리즘 (1)
    • Java (54)
      • JPA (6)
      • Spring (5)
      • SpringBoot (15)
    • Network (2)
    • Database (1)
    • Git (2)
    • & (1)
    • Exception (3)
    • Study (0)
      • RealMySQL (0)
    • 회고 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • programmers
  • Spring
  • 자바 웹을 다루는 기술
  • 다트게임
  • 스프링부트와 AWS로 혼자 구현하는 웹 서비스
  • TDD 실천법과 도구
  • Spring Data JPA
  • dirtychecking
  • AWS
  • 테스트주도개발
  • 프로그래머스
  • SpringBoot
  • 쿼리로그
  • 머스테치
  • 더티체킹
  • 스프링부트
  • 자바웹을다루는기술
  • Mustache
  • 코드로배우는스프링웹프로젝트
  • 스프링 부트와 AWS로 혼자 구현하는 웹 서비스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
좌선

좌선의 개발일지

Java

JDBC 작업 순서

2021. 3. 31. 19:53

JDBC 작업 순서

	Connection conn =null;
	Statement stmt = null;
	ResultSet rs = null;
    
    try{
		//2. 드라이버 로딩
		Class.forName("oracle.jdbc.OracleDriver");
		System.out.println("Oracle 로딩 ...");
		
		//3. 연결 객체 생성
		conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","사용자이름","암호");
		System.out.println("연결 여부 : false :" + conn.isClosed());
		
		//4. 명령 객체 생성
		stmt = conn.createStatement();
		
		//4.1 parameter  설정 (옵션)
		String job="";
		Scanner sc = new Scanner(System.in);
		System.out.println("직종입력");
		job =sc.nextLine();
		
		//4.2 명령구문 생성
		String sql="select empno , ename, job  from emp where job='" + job + "'";
		//where job='CLERK'
				
		//5. 명령실행
		//DQL(select) > stmt.executeQuery(sql) > return ResultSet 타입의 객체 주소 
		//DML(insert , delete , update) > 결과 집합(x) > return 반영된 행의 개수  > stmt.executeUpdate()
		//delete from emp; 실행   return 14
				
		rs = stmt.executeQuery(sql);		
			
		//명령처리 
		/*  
		DQL(select) : 1.  결과가 없는 경우 (where empno=1111)
		              2.  결과가 1건일 경우 (PK , Unique 컬럼 조회 :  where empno=7788)
		              3.  결과가 여러건 ( row  : select empno ,ename from emp where deptno=20) 
		
		*/
		
		//1. 간단하고 단순한 방법
		//1.1 결과 집합이 없는 경우 로직 처리가 안되요
		//while(rs.next()){  //너 결과 집합이 있니(row)
			//rs.getInt("empno")  출력
		//}
		
		
		//2. 결과가 있는 경우와 없는 경우 처리
		//2.1 1건이 있는 경우 가능 (여러건의 row read 안되요)
		//if(rs.next()){
			//rs.getInt("empno")  출력
		//}else{
			//조회된 데이터가 없습니다
		//}
		
		
		//1 , 2 번을 합하면 (공식같은 로직)
		//-single row
		//-multi row
		//-결과가 없는 경우
		if(rs.next()){
			
			do{
				//컬럼의 순서 [1][2][3][4]
				System.out.println(rs.getInt(1) + "," + rs.getString(2) +"," + rs.getString(3));
			}while(rs.next());
			
		}else{
			
			System.out.println("조회된 데이터가 없습니다");
		}
	}catch(Exception e){
		System.out.println(e.getMessage());
	}finally{
		//자원 해제
		try{
			stmt.close();
			rs.close();
			conn.close();
		}catch(Exception e){
			
		}
		
	}

1. Connection, Statement, ResultSet 변수 생성

2. 드라이버 로딩

3. 연결 객체 생성 (DB랑 연결)

Connection 변수 = DriveraManager.getConnection()

4. 명령 객체 생성

Statement 변수 = Connection변수.createStatement()

  4-1. parameter 설정

  4-2. 명령구문 생성 (sql)

5. 명령실행

ResultSet 변수 = Statement변수.executeQuery(명령구문);

ResultSet변수.getInt("") or getString()....

 

 

    'Java' 카테고리의 다른 글
    • JDBC SingletonHelper
    • JDBC DML(insert, update, delete)
    • JDBC
    • JSP Core 태그 라이브러리
    좌선
    좌선
    얼렁뚱땅 천방지축 굴러가는 개발자의 삶

    티스토리툴바