java 프로그램에서 database 연결 프로그램
==> 'JDBC 프로그래밍' 이라고 함
JDBC 프로그래밍 전 연동 설정 방법
1. DBMS에 따른 jdbc 드라이버를 jdk에 복사 해둔다.
탐색기 - C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib
- 주소에서 두개의 파일 중 ojdbc14 복사하기
2. jdk 설치된 곳으로 감
두군데에 붙여 놓기 해야함
C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext
- 주소에 붙여놓기
C:\Program Files\Java\jre1.8.0_73\lib\ext
- 주소에 붙여놓기
3. 이렇게 하면 준비 끝
이제 자바로 만든 MemberTest02 라는 파일을 준비한다. (코드 밑에 제시되어 있음)
DB 연결코드는 모든 코드 작성 후 마지막에 써야함
JDBC 프로그래밍 순서
1. jdbc 드라이버를 메모리로 로드한다.
로드하는 명령 : Class.forName("드라이버 이름"); // 드라이버이름은 DBMS 마다 다름
로드하는 명령 : Class.forName("oracle.jdbc.driver.OracleDriver");
2. DB 서버에 연결한다.
서버 연결하는 명령 : DriverManager.getConnection( ); //객체없이 생성된DriverManager는 static으로 구성되어있다는 것임
서버 연결하는 명령 : DriverManager.getConnection( "jdbc:oracle:thin:@IP주소:포트번호:서비스번호","scott","tiger" ); // DBMS 마다 다름
서버 연결하는 명령 : DriverManager.getConnection( "jdbc:oracle:thin:@203.236.209.141:1521:xe","scott","tiger" );
@ 다음 아이피 주소값 확인하는 방법
cmd - ipconfig 쳐서 ip 확인 - 이더넷 어댑터 로컬 영역 연결 중 IPv4 주소 입력값 사용
혹은 localhost 사용해도 됨
포트번호 및 xe 확인방법
C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN 에서 listener.ora 파일을 editplus 끌어보면 포트 번호가 보임
디폴트 서비스 리스너 에 xe 라고 보임
서버 연결하는 명령 : Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@203.236.209.141:1521:xe","scott","tiger" ); // 커넥션에 담기
자바 API 에서 java.sql -> DriverManager -> static Connection 중 getConnection(String url, String user, String password) 참고
3. 연결된 DB서버에 sql문에 실행하기 위한 객체를 생성한다.
연결된 connection 을 데리고 생성한다.
실행하기 위한 객체 생성 명령어 conn.createStatement();
API java.sql -> createStatement 참고
실행하기 위한 객체 생성 명령어 Statement stmt = conn.createStatement();
4. 생성된 stmt를 통해서 sql명령어를 실행한다.
sql 문장 실행 해달라는 명령어 stmt.executeUpdate(sql);
API java.sql -> statement -> executeUpdate 참고(자료수정하거나 자료삭제할때 사용하는 메소드)
리스트에 담긴것 만큼 추가하기
sql 문장 실행 해달라는 명령어 n = n+ stmt.executeUpdate(sql);
그리고 for문 빠져나와서 if문으로 조건 만들기
if (n == list.size()){
System.out.println("회원의 정보를 모두 데이터베이스에 반영했어");
}else{
System.out.println("데이터 베이스 반영에 실패했어");
}
위에 관련 코드
import java.util.*;
import java.sql.*;
// 회원관리 프로그램
class Member{
private String name;
private String tel;
private String addr;
//setter
public void setName(String name){
this.name = name;
}
public void setTel(String tel){
this.tel = tel;
}
public void setAddr(String addr){
this.addr = addr;
}
//getter
public String getName(){
return name;
}
public String getTel(){
return tel;
}
public String getAddr(){
return addr;
}
//생성자
public Member(){}
public Member(String name, String tel, String addr){
this.name = name;
this.tel = tel;
this.addr = addr;
}
//toString
public String toString(){
return "회원이름 : " + name + "\t" + "전화번호 : " + tel + "\t" + "주소 : " + addr;
}
}
class MemberTest02{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Member> list = new ArrayList<Member>();
System.out.println("=====회원관리 프로그램=====");
//while문 돌리기전 데이터가 있으면 같이 실으면 됨
while(true){
String name, tel, addr;
System.out.println("회원이름 ==>[종료 : q] ");
name = sc.next();
if (name.equals("q")){
break;
}
System.out.println("회원전화 ==> ");
tel = sc.next();
System.out.println("회원주소 ==> ");
addr = sc.next();
list.add(new Member(name, tel, addr));
}
System.out.println(list);
int n = 0;
try{
//JDBC 프로그래밍 순서
//for문에 오기 전에 미리 만들어 두자. 굳이 데이터 저장할때마다 실행될 필요가 없기 때문에.
//1. jdbc 드라이버를 메모리로 로드한다.
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. DB 서버에 연결한다.
Connection conn =DriverManager.getConnection( "jdbc:oracle:thin:@203.236.209.141:1521:xe","scott","tiger" );
//3. 연결된 DB서버에 sql문을 실행하기 위한 객체를 생성한다.
Statement stmt = conn.createStatement();
//4. 4번은 for문 안에서 계속 돌아가야 함
//프로그램 종료하기전 list에 데이터 수 만큼 데이터베이스에 저장하기
for ( Member m : list ){
String sql = "insert into member values('"+m.getName()+"','"+m.getTel()+"','"+m.getAddr()+"')";
//4. 생성된 stmt를 통해서 sql 명령어를 실행한다.
n = n + stmt.executeUpdate(sql);
}
// 데이터베이스 연결을 위해 사용했던 자원을 닫아준다.
stmt.close(); //사용했던 메모리를 해지해주는 기능
conn.close();
}
catch (Exception e){
System.out.println(e);
}
if (n == list.size()){
System.out.println("회원의 정보를 모두 데이터베이스에 반영했어");
}else{
System.out.println("데이터 베이스 반영에 실패했어");
}
}
}
'JAVA > Oracle' 카테고리의 다른 글
오라클이 제공하는 수학관련 함수를 이용한 자료 검색 (0) | 2016.06.18 |
---|---|
사원관리 시스템 개발 시 필요한 정보와 like 연산자 사용(칼럼의 값이 특정 무자열을 포함하고 있는 자료의 검색) (0) | 2016.06.18 |
Oracle/JAVA 연동 예제 : 상품관리 프로그램 작성 (0) | 2016.06.18 |
Oracle 명령어 (0) | 2016.06.18 |
Oracle 설치 관련 및 주의사항 (0) | 2016.06.18 |