본문 바로가기

카테고리 없음

국비 지원 학원 day15 JDBC,JAVA상속/인터페이스/추상클래스

우선 OR

C 경로 불러오기

build path > configure buold path >라이브러리 > 파일경로 후 불러오기

 

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class insert {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 사용자 화면
		System.out.print("ID : ");
		String id = sc.next();
		System.out.print("pw : ");
		String pw = sc.next();
		System.out.print("name : ");
		String name = sc.next();

		// JDBC 연결순서(4단계)
		// 선행작업 필요 : ojdbc6.jar -> 프로젝트에 라이브러로 추가
		// 프로젝트 우클릭 -> build path -> cofigure build path

		// 1. JDBC 동적로딩
		// 동적로딩을 위한 메소드 사용
		Connection conn = null;
		PreparedStatement psmt = null;

		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");

			// 2. DB 연결
			// DB에 접근 할 때 -> 변수를 사용해서 URL, ID, PW 를 전송
			String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";// @localhost
			String db_id = "hr";
			String db_pw = "hr";

			conn = DriverManager.getConnection(url, db_id, db_pw);

			if (conn != null) {
				System.out.println("연결성공");
			} else {
				System.out.println("연결실패");
			}

			// 3. SQL문 작성 및 전송
			String sql = "insert into member values(?,?,?)";
			psmt = conn.prepareStatement(sql);

			psmt.setString(1, id);
			psmt.setString(2, pw);
			psmt.setString(3, name);

			// CRUD : Create(생성), Read(읽기, 조회), Update(갱신, 수정), Delete(삭제)
			// insert, update , delete : executeUpdate() --> int 타입
			// select : executeQuery()
			int cnt = psmt.executeUpdate();

			if (cnt > 0) {
				System.out.println("회원가입 성공!");
			} else {
				System.out.println("회원가입 실패!");
			}

			// 4. 통로 닫아주기(종료)

		} catch (ClassNotFoundException e) {
			System.out.println("동적 로딩 실패~");

		} catch (SQLException e) {
			System.out.println("DB 연결 실패~");
		} finally {
			// 4. 통로 닫아주기(종료)
			try {
				if (psmt != null) {
					psmt.close();
				}
				if (conn != null) {
					conn.close();
				}
			} catch (Exception e) {

			}

		}

	}

}

실행전  sql로 member table 생성 (오타주의)

만약 sql로 jaba로 계속 계정접속이 귀찮으면

class 생성하듯이 sql .생성후 계정 접속 후

sql (클래스?!) 에서 입력 후 실행(결과창을 따로 클릭해서 확인해야함)

 

참고로 실행 키는 Alt+x 인데 드래그해서 실행해야함


package 추상클래스예제;

public abstract class Employee {
	// 1. 사번, 이름, 연봉 or 일당
	String empno;
	String name;
	int pay;

	// 2.월급을 계산흐는 기능 getMoneyPay -> 추상메소드
	public abstract int getMoneyPay();

	// 3. 사번 : 이름 : 연봉 출력시키는 print() -> 일반 메소드
	public void print() {
		System.out.println(empno + " : " + name + " : " + pay);

	}

}
===========================================================================================
package 추상클래스예제;

public class PartTimeEmployee extends Employee {
	// empno
	// name
	// pay
	int workDay; // 일수

	@Override
	public int getMoneyPay() {
		return pay * workDay;
	}

	public PartTimeEmployee(String empno, String name, int pay, int workDay) {
		this.empno = empno;
		this.name = name;
		this.pay = pay;
		this.workDay = workDay;

	}

}
========================================================================================
package 추상클래스예제;

public class TempEmployee extends Employee {
	// empno
	// name
	// pay

	public TempEmployee(String empno, String name, int pay) {
		this.empno = empno;
		this.name = name;
		this.pay = pay;
	}

	// 연봉/12 -->월급여

	// 월 급여를 반환해 주는 역활!
	int workDay;

	@Override
	public int getMoneyPay() {
		return pay/12;
	}
}
======================================================================================
package 추상클래스예제;

public class RegularEmployee extends Employee{
	int workDay;
	int bonus;
	
		public RegularEmployee(String empno,String name, int pay, int workDay, int bonus) {
			this.empno = empno;
			this.name = name;
			this.workDay = workDay;
			this.bonus = bonus;
		}
		
		
		@Override
		public int getMoneyPay() {
			return pay*workDay+((pay*workDay)*bonus);
		}
}
=============================================================================================
package 추상클래스예제;

public class EmployeeMain {

	public static void main(String[] args) {
		// PartTimeEmployee 객체를 만들어 주세요!
		PartTimeEmployee partTime = new PartTimeEmployee("001", "승환쌤", 100, 25);
		// 사번, 이름, 일당
		System.out.println(partTime.getMoneyPay());
		partTime.print();

		// 월급여
		TempEmployee temp = new TempEmployee("002", "주희쌤", 20);
		temp.print();

		RegularEmployee regular = new RegularEmployee("003", "효창", 100, 25, 5);
		regular.print();

	}

}

package 인터페이스;

public interface person {
	// 인터페이스는 프로젝트가 시작될때
	// 필요한 기능들을 미리 정의하고 시작하는 기능! --->추상클래스보다 먼저 만들어지는 최초의 설계도

	// 인터페이스 역시 객체 생성이 불가능하다!

	// 변수 -> 상수 값만 올 수 있다!
	int eyes = 2; // final 생략 ---> public static final
	// 메서드 -> 추상 메서드만 올 수있다!

	void sleep();// abstract 생략 ---> public abstract 생략가능!

}
=============================================================================================
package 인터페이스;

public interface person2 {

	void eat();

}
=============================================================================================
package 인터페이스;

public class 승환Person implements person, person2 {

	// 인터페이스를 상속 받을때는 implements 라는 키워드를 사용한다!
	// 인터페이스 상속은 다중 상속이 가능하다!!

	@Override
	public void sleep() {
		System.out.println("엎드려서 잠을잔다");
	}

	@Override
	public void eat() {
		System.out.println("승환쌤이 짜장면을 먹다");
	}
}

인터페이스는 쉬운데 추상을 이해하는데 시간이랑 jdbc는 이해하는데 시간이 걸림

코드가 길어 질수로

1. 오류 구문 캐치 필요

2. 오타 주의