Fullstack-Study-241204-250625

커리큘럼(12-30/변경)

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)

JSP

JDBC(Java Database Connectivity)

  1. MySQL

"jdbc:mysql://호스트이름:포트번호/DB이름"

  1. ORACLE

"jdbc:oracle:thin:호스트이름:포트번호:DB이름"

  • 호스트이름 = IP주소

JDBC 실행순서

  1. Driver 로딩
  2. Connection
  • Java와 Oracle(DB) 연결
  1. Statement
  • query 전송 객체
  1. Query
  • query 작성
  1. Run
  • query 전송

Connection 객체

  • DriverManager.getConnection() 메서드를 사용해 커넥션을 구할 수 있음
  • 연결이 끝난 뒤에는 반드시 close() 메서드를 호출해 Connection객체가 사용한 시스템 자원을 반환해야함
  • 데이터베이스와의 연결을 담당하는 객체

Statement 객체

  • Connection 객체 생성후 Connection객체로부터 Statement를 생성하고 쿼리문 실행

주요메서드

  1. executeQuery()
  • Select 쿼리문 실행
  1. 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객체에 담아서 리턴

주요 메서드

  1. next()
  • 다음 값의 확인
  1. getString()
  • 지정한 컬럼 값을 String으로 읽음
  1. getInt()
  • 지정한 컬럼 값을 Int타입으로 읽음
  1. 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개 이상의 네트워크가 연결되어 있는 형태

URL

"https://velog.io/@lamda/HTTP-통신의-요청과-응답에-대해-알아보자"

  1. 프로토콜
  • 네트워크상에서 약속한 통신규약 (HTTP,FTP,SMTP,POP,DHCP)
  1. IP주소
  • 네트워크상에서 특정 컴퓨터를 식별할 수 있는 주소
  1. port번호
  • 해당 컴퓨터의 구동되고 있는 프로그램을 구분할 수 있는 번호
  1. DNS
  • IP주소를 인간이 쉽게 외우도록 맵핑한 문자열

"https://velog.io/@lamda/HTTP-통신의-요청과-응답에-대해-알아보자"

JSP(Java Server Pages)

Java Servlets

  • 서버에서 실행되는 자바 프로그램
  • 서블릿이 사용자에 의해 요청되면 서버에서는 HTTP Reuqest에 응답하기 위해 웹 서버에서 서블릿 객체를 생성하고 이를 통해 사용자의 요청 처리

HTML