우선 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. 오타 주의