국비학원/공부

25일차 java(13)

mikan- 2023. 7. 3. 13:40

# Reverse

public class ReverseTestAnswer {

	public static void main(String[] args) throws Exception {
		/*
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str;
		char ch;
		System.out.println("문자열을 입력?");
		str = br.readLine();
		System.out.println(str);
		
		for (int i = str.length()-1; i >= 0; i--  ) {
			ch = str.charAt(i);
			System.out.println(ch);
			
		}*/
		
		ReverseTestAnswer rt = new ReverseTestAnswer();
		BufferedReader br = rt.getBuffer();
		rt.setBuffer(br);
	}
	
	// 1. getBuffer()
	public BufferedReader getBuffer( ) {
		
		/*
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		return br;
		*/
		// 익명함수도 가능함
		return new BufferedReader(new InputStreamReader(System.in));
		
	}
	
	// 2. setBuffer()
	public void setBuffer(BufferedReader br) throws IOException { 
		
		String str;
		char ch;
		System.out.println("문자열을 입력?");
		str = br.readLine();
		System.out.println(str);
		
		for (int i = str.length()-1; i >= 0; i--  ) {
			ch = str.charAt(i);
			System.out.println(ch);
			
		}
		
		
	}

}

 

# DB

public class DBTest {

	public static void main(String[] args) {
		
		// 1. DB에 접속을 성공 했는지 안했는지 확인 -> con객체를 얻어왔다고 표현
		Connection con = null;
		
		// 2. 접속하고자 하는 컴퓨터 위치                  1521   orcl
		// 형식) jdbc:oracle:thin:@원격ip주소(=localhost):포트번호:sid
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		
		try {
			// 1. 접속할 드라이버를 메모리에 올리기
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			// 2. 접속하기 위해서 getConnection(1. 접속위치 2. 계정명 3. 암호)
			con = DriverManager.getConnection(url, "scott", "tiger");
			
			System.out.println("connection : " + con);
		} catch (Exception e) {
			System.out.println("DB연결 실패 : " + e);
		}
	}
}

 

# DB (2)

// DB에 관련된 클래스, 인터페이스
import java.sql.*; 

public class DBSelect {

	public static void main(String[] args) {
		
		// 1. DB에 접속을 성공 했는지 안했는지 확인 -> con객체를 얻어왔다고 표현
		Connection con = null;
		
		// 2. 접속하고자 하는 컴퓨터 위치                  1521   orcl
		// 형식) jdbc:oracle:thin:@원격ip주소(=localhost):포트번호:sid
		//=====================추가===============================
		Statement stmt = null; // create table
		PreparedStatement pstmt = null; // insert into
		Statement stmt2 = null; // select
		ResultSet rs = null; // select 의 결과를 표 형태로 담을 객체 필요
		String sql = ""; // sql구문 저장
		//========================================================
		
		
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		
		try {
			// 1. 접속할 드라이버를 메모리에 올리기
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			// 2. 접속하기 위해서 getConnection(1. 접속위치 2. 계정명 3. 암호)
			con = DriverManager.getConnection(url, "scott", "tiger");
			
			System.out.println("connection : " + con);
			
			//==================추가============================
			// 3. 테이블 생성
			stmt = con.createStatement();
			sql = "create table MyTest(name varchar2(20), age number)";
			int create = stmt.executeUpdate(sql); // 0 = 성공
			System.out.println("테이블 성공 유무(create) : " + create);
			
			// 4. insert into
			pstmt = con.prepareStatement("insert into mytest values(?, ?)");

			// 형식) pstmt객체명.setString(or setInt, setDouble(순서, 저장할값)
			pstmt.setString(1, "hong");
			pstmt.setInt(2, 23);
			
			int insert = pstmt.executeUpdate(); // 1 = 성공, 0 = 실패
			System.out.println("데이터 입력성공유무(insert) : " + insert);
			
			// 5. select
			stmt2 = con.createStatement();
			rs = stmt2.executeQuery("select * from mytest");
			
			// 검색된 개수를 정확하게 알기가 쉽지 않기 때문에 while
			while(rs.next()) { // while(rs.next() == true) { // 보여줄 레코드가 있다면
				String name = rs.getString("name");
				int age = rs.getInt(2); // rs.getInt("age") // 추천
				System.out.println("name : " + name + ", age : " + age);
			}
			
			// 6. 메모리 해제 : 에러유발과 상관없이 반드시 처리하고 프로그램을 종료
			// 생성된 객체의 역순으로 메모리 해제
			// con -> stmt -> pstmt -> stmt2 -> rs
			rs.close();
			stmt2.close();
			pstmt.close();
			stmt.close();
			con.close();
			
		} catch (Exception e) {
			System.out.println("DB연결 실패 : " + e);
		} finally {
			// try { rs.close(); } catch (SQLException e) {}
		}
	}
}

 

# network

// 네트워크와 입출력 연결
import java.io.*;

//특정사이트에 접속 해서 정보를 가져오기 -> URL, URLConnection
import java.net.URL;

import java.util.*;

public class URLTest {

	public URLTest(String s) throws Exception {
		URL url = new URL(s);
		System.out.println("url : " + url);
		InputStream in = url.openStream();
		BufferedReader br = new BufferedReader(new InputStreamReader(in));
		
		String ss; // 읽어들여서 임시로 저장할 변수
		
		while((ss = br.readLine()) != null) { // 불러올 데이터가 존재하는 한
			System.out.println(ss);
			
		}
		in.close();
	}
	
	public static void main(String[] args) throws Exception {
		
		Scanner sc = new Scanner(System.in);
		System.out.println("접속할 사이트 도메인 이름 입력(https://도메인이름)");
		String domain = sc.next();
		new URLTest(domain);
		
	}
}

'국비학원 > 공부' 카테고리의 다른 글

26일차 jsp(1)  (0) 2023.07.03
25일차 java(last) - ChatGUI make  (0) 2023.07.03
24일차 java(12)  (0) 2023.07.03
23일차 java(11)  (0) 2023.07.03
22일차 java(10)  (0) 2023.07.03