01. Java
02. git
03. Database
04. Jsp [Server] (v)
05. 미니프로젝트 (3W)
06. HTML,CSS
07. JS
08. SpringFramework , SrpingBoot
09. React JS [Front-end]
10. 중간프로젝트 (1M)
11. Linux 명령어
12. AWS 클라우드
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)
- DBMS의 JDBC URL패턴
- MySQL
"jdbc:mysql://호스트이름:포트번호/DB이름"
- ORACLE
"jdbc:oracle:thin:호스트이름:포트번호:DB이름"
- 호스트이름 = IP주소
JDBC 실행순서
- Driver 로딩
- Connection
- Java와 Oracle(DB) 연결
- Statement
- query 전송 객체
- Query
- query 작성
- Run
- query 전송
Connection 객체
- DriverManager.getConnection() 메서드를 사용해 커넥션을 구할 수 있음
- 연결이 끝난 뒤에는 반드시 close() 메서드를 호출해 Connection객체가 사용한 시스템 자원을 반환해야함
- 데이터베이스와의 연결을 담당하는 객체
Statement 객체
- Connection 객체 생성후 Connection객체로부터 Statement를 생성하고 쿼리문 실행
주요메서드
- executeQuery()
- Select 쿼리문 실행
- executeUpdate()
- Insert, Update, Delete 쿼리문 실행
PreparedStatement객체
- Statement 객체와 PreparedStatement객체는 쿼리문을 실행하는 동일한 기능 제공
- 값을 지정할 떄 값 부분을 **물음표(?)**로 처리하기 때문에 간단히 값을 지정할 수 있음
- 첫번째 물음표의 인덱스는 1이며, 이후 물음표의 인덱스는 나오는 순서대로 1씩 증가
System.out.print("이름>>"); String name = sc.nextLine(); System.out.print("주소>>"); String address = sc.nextLine(); Connection conn = null; //연결객체 PreparedStatement pstmt = null; //sql을 실행하기 위한 객체 //String url = "jdb:oracle:thin:@아이피주소:포트번호:데이터베이스명"; String url = "jdb:oracle:thin:@localhost:1521:xe"; String uid = "HR"; String upw = "HR"; String sql = "INSERT INTO MEMBERS(NAME,ADDRESS) VALUES(?,?)"; // DriverManager.getConnection("DB주소", "유저명", "비밀번호"); try { // 자바 sql패키지는 SQLException예외를 던지고 있어서, try~catch문 안에서 실행 // 1. 드라이버 클래스 준비 Class.forName("oracle.jdbc.driver.OracleDriver"); // 2. 커넥션 생성 //conn = DriverManager.getConnection("DB주소", "유저명", "비밀번호"); conn = DriverManager.getConnection(url, uid, upw); // 3. statement객체 생성 pstmt = conn.prepareStatement(sql); // 4. ? 값을 채움 - ?는 순서대로 1~n번 할당 , setString(),setDouble(),setInt() pstmt.setString(1, name); pstmt.setString(2, address); // 5. 실행 // select구문은 executeQuery() // insert,delete,update구문은 executeUpdate() int result = pstmt.executeUpdate(); // 반환이 정수 if(result ==1) { // 1이면 성공 System.out.println("정상 입력 되었습니다."); }else { // 0이면 실패 System.out.println("입력 실패입니다."); } } catch (Exception e) { e.printStackTrace(); } finally { try { conn.close(); pstmt.close(); }catch(Exception e2) { } }
ResultSet객체
- 데이터베이스에서 쿼리 실행 후 반환된 결과 데이터를 담고 있는 객체
- Statement객체의 executeQuery()메서드는 Select 쿼리문의 결과를 ResultSet객체에 담아서 리턴
주요 메서드
- next()
- 다음 값의 확인
- getString()
- 지정한 컬럼 값을 String으로 읽음
- getInt()
- 지정한 컬럼 값을 Int타입으로 읽음
- getDouble()
- 지정한 컬럼 값을 Double타입으로 읽음
Connection conn = null; // 연결객체 PreparedStatement pstmt = null; // sql을 실행하기 위한 객체 ResultSet rs = null; // sql을 실행한 결과를 반환 받을 객체 String url = "jdbc:oracle:thin:@localhost:1521:xe"; String uid = "HR"; String upw = "HR"; String sql = "SELECT * FROM MEMBERS ORDER BY MNO DESC"; try { // 1. 드라이버 클래스 Class.forName("oracle.jdbc.driver.OracleDriver"); // 2. 커넥션 객체 생성 conn = DriverManager.getConnection(url,uid,upw); // 3. preparedstatement객체 pstmt = conn.prepareStatement(sql); // 4. 실행 rs = pstmt.executeQuery(); // select문의 결과값에 다음행이 있다면 true반환 while(rs.next()) { /* * select의 실행 결과를 하나씩 읽어서 처리할 프로그램 코드 작성 * getString() * getInt() * getDouble() * getDate,getTimestamp() */ int mno = rs.getInt("mno"); // 컬럼명 String name = rs.getString("name"); String address = rs.getString("address"); Date regdate = rs.getTimestamp("regdate"); System.out.println(mno+", "+name+", "+address+", "+regdate); } } catch(Exception e) { e.printStackTrace(); } finally { try { conn.close(); pstmt.close(); rs.close(); } catch(Exception e2) { } }
- 웹 애플리케이션을 구현하는 행위
- 웹을 기반으로 작동하는 프로그램
: 1개 이상의 사이트가 연결되어 있는 인터넷 서비스의 한가지 형태
: 1개 이상의 네트워크가 연결되어 있는 형태
- 프로토콜
- 네트워크상에서 약속한 통신규약 (HTTP,FTP,SMTP,POP,DHCP)
- IP주소
- 네트워크상에서 특정 컴퓨터를 식별할 수 있는 주소
- port번호
- 해당 컴퓨터의 구동되고 있는 프로그램을 구분할 수 있는 번호
- DNS
- IP주소를 인간이 쉽게 외우도록 맵핑한 문자열
- HTML 페이지를 만들기 위한 방법 중 하나
- 사용자가 코드를 작성한 다음 컴파일 과정을 거치지 않고 서버에서 실행시킬 수 있음
- 웹 서버에 의해 서블릿으로 변환된 다음 실행
Java Servlets
- 서버에서 실행되는 자바 프로그램
- 서블릿이 사용자에 의해 요청되면 서버에서는 HTTP Reuqest에 응답하기 위해 웹 서버에서 서블릿 객체를 생성하고 이를 통해 사용자의 요청 처리