728x90
정의 : DBMS 종류에 상관없이 데이터베이스를 연동하기 위한 API
데이터베이스 접근시 문제점
- DBMS 종류가 다양하고, 구조와 특징이 모드 틀리다.
- DBMS 종류만큼 데이터베이스 접근방법을 모두 알아야 한다.
문제점 해결
- 모든 DBMS에서 공통적으로 사용할 수 있는 인터페이스와 클래스를 정의하고 실제 구현은 DBMS vendor에게
구현하도록 함.
- DBMS vendor에서 구현한 클래스집합을 'Driver' 라고 한다.
JDBC 인터페이스는 SUN에서 제공 ( java.sql.*;)
- 드라이버는 클래스다.
Java에서 DB사용
- DBMS를 설치한다
- 드라이버 다운로드 후 jar 파일을 C:\Program Files\Java\jdk1.5.0_09\jre\lib\ext에 넣는다.
오라클 드라이버는 C:\oracle\product\10.2.0\db_1\jdbc\lib 폴더안에 ojdbc14.jar
자바 어플리케이션 작업
Access
드라이버로딩 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
Connection 생성하기 : Connection con = DriverManager.getConnection(url,user,pwd)
URL : "jdbc:odbc:DB명" // 디비가 있는곳을 말함.
Oracle
드라이버로딩 : Class.forName("oracle.jdbc.driver.OracleDriver")
Connection 생성하기 : Connection con = DriverManager.getConnection(url,user,pwd)
URL : URL = "jdbc:oracle:thin:@localhost:1521:orcl";
MySql
드라이버로딩 : Class.forName("com.mysql.jdbc.Driver")
Connection 생성하기 : Connection con = DriverManager.getConnection(url,user,pwd)
URL : "jdbc:mysql://localhost:3306/mydb"
데이터베이스 접근시 문제점
- DBMS 종류가 다양하고, 구조와 특징이 모드 틀리다.
- DBMS 종류만큼 데이터베이스 접근방법을 모두 알아야 한다.
문제점 해결
- 모든 DBMS에서 공통적으로 사용할 수 있는 인터페이스와 클래스를 정의하고 실제 구현은 DBMS vendor에게
구현하도록 함.
- DBMS vendor에서 구현한 클래스집합을 'Driver' 라고 한다.
JDBC 인터페이스는 SUN에서 제공 ( java.sql.*;)
- 드라이버는 클래스다.
Java에서 DB사용
- DBMS를 설치한다
- 드라이버 다운로드 후 jar 파일을 C:\Program Files\Java\jdk1.5.0_09\jre\lib\ext에 넣는다.
오라클 드라이버는 C:\oracle\product\10.2.0\db_1\jdbc\lib 폴더안에 ojdbc14.jar
자바 어플리케이션 작업
- import java.sql.*;
- 드라이버 로딩 (Vender에서 제공한 클래스를 객체 생성하여 메모리에 Load )
- Connection (디비연결)
- Statement 생성 (쿼리문 사용하기 위해서) -- 여기까지는 다 똑같음..
- Query문 작성 (select, insert, update, delete)
- Query문 전송 select -> executeQuery() insert, update ,delete -> executeUpdate()
- SELECT 문인 경우 결과값 얻기
- 결과값 출력.
- close 작업(rs.close(), stmt.close(), con.close() 역순으로 )
드라이버로딩 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
Connection 생성하기 : Connection con = DriverManager.getConnection(url,user,pwd)
URL : "jdbc:odbc:DB명" // 디비가 있는곳을 말함.
Oracle
드라이버로딩 : Class.forName("oracle.jdbc.driver.OracleDriver")
Connection 생성하기 : Connection con = DriverManager.getConnection(url,user,pwd)
URL : URL = "jdbc:oracle:thin:@localhost:1521:orcl";
MySql
드라이버로딩 : Class.forName("com.mysql.jdbc.Driver")
Connection 생성하기 : Connection con = DriverManager.getConnection(url,user,pwd)
URL : "jdbc:mysql://localhost:3306/mydb"
Oracle
import java.sql.*; // 1. java.sql 패키지를 import 한다.
class MemberTest
{
private static final String driver = "oracle.jdbc.driver.OracleDriver";
private static final String url = "jdbc:oracle:thin:@211.183.7.137:1521:orcl";
private static final String user = "scott";
private static final String pwd = "tiger";
public static void main(String args[])
{
Connection conn;
Statement stmt;
ResultSet rs;
try
{
Class.forName(driver); // 2. 드라이버 로딩
System.out.println("Oracle드라이버 로딩 성공");
conn = DriverManager.getConnection(url,user,pwd); // 3. Connection 얻기
System.out.println("Connectoin 생성 성공");
stmt = conn.createStatement();
System.out.println(" Statement 생성 성공"); // 4. Statement 생성
String query = "INSERT INTO member VALUES('이철수','166','45',18,'m')";// 5. Query문 작성
System.out.println(query);
stmt.executeUpdate(query); // 6. Query문 전송
String query2 = "select * from member"; // 5. Query문 작성
System.out.println(query2);
rs = stmt.executeQuery(query2); // 6. Query문 전송
while(rs.next()) // 7.result를 얻는다.
{
System.out.print(" 이름 :>>"+rs.getString("name")); // 8. ResultSet 객체 접근 getter()메서드로 값을 얻음.
// = System.out.print(" 이름 :>>"+rs.getString(1));
System.out.print(" 키 :>>"+rs.getString("height"));
System.out.print(" 체중 :>>"+rs.getString("weight"));
System.out.print(" 나이 :>>"+rs.getString("age"));
System.out.println(" 성별 :>>"+rs.getString("sex"));
}
rs.close(); // 9. 역순으로 종료.
stmt.close();
conn.close();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
class MemberTest
{
private static final String driver = "oracle.jdbc.driver.OracleDriver";
private static final String url = "jdbc:oracle:thin:@211.183.7.137:1521:orcl";
private static final String user = "scott";
private static final String pwd = "tiger";
public static void main(String args[])
{
Connection conn;
Statement stmt;
ResultSet rs;
try
{
Class.forName(driver); // 2. 드라이버 로딩
System.out.println("Oracle드라이버 로딩 성공");
conn = DriverManager.getConnection(url,user,pwd); // 3. Connection 얻기
System.out.println("Connectoin 생성 성공");
stmt = conn.createStatement();
System.out.println(" Statement 생성 성공"); // 4. Statement 생성
String query = "INSERT INTO member VALUES('이철수','166','45',18,'m')";// 5. Query문 작성
System.out.println(query);
stmt.executeUpdate(query); // 6. Query문 전송
String query2 = "select * from member"; // 5. Query문 작성
System.out.println(query2);
rs = stmt.executeQuery(query2); // 6. Query문 전송
while(rs.next()) // 7.result를 얻는다.
{
System.out.print(" 이름 :>>"+rs.getString("name")); // 8. ResultSet 객체 접근 getter()메서드로 값을 얻음.
// = System.out.print(" 이름 :>>"+rs.getString(1));
System.out.print(" 키 :>>"+rs.getString("height"));
System.out.print(" 체중 :>>"+rs.getString("weight"));
System.out.print(" 나이 :>>"+rs.getString("age"));
System.out.println(" 성별 :>>"+rs.getString("sex"));
}
rs.close(); // 9. 역순으로 종료.
stmt.close();
conn.close();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
insert, update, delete는 executeUpdate() 메서드를 사용하고 , select문은 executeQuery() 메서드를 사용한다.
MySql
import java.sql.*;
class MySql
{
private static final String driver = "com.mysql.jdbc.Driver";
private static final String url = "jdbc:mysql://localhost:3306/mydb";
private static final String user = "root";
private static final String pwd = "12345";
public static void main(String args[])
{
Connection conn;
Statement stmt;
ResultSet rs;
try
{
Class.forName(driver); // 2. 드라이버 로딩
System.out.println("MySql드라이버 로딩 성공");
conn = DriverManager.getConnection(url,user,pwd); // 3. Connection 얻기
System.out.println("Connectoin 생성 성공");
stmt = conn.createStatement();
System.out.println(" Statement 생성 성공"); // 4. Statement 생성
String query = "INSERT INTO member VALUES('이철수','166','45',18,'m')";// 5. Query문 작성
System.out.println(query);
stmt.executeUpdate(query); // 6. Query문 전송
String query2 = "select * from member"; // 5. Query문 작성
System.out.println(query2);
rs = stmt.executeQuery(query2); // 6. Query문 전송
while(rs.next()) // 7.result를 얻는다.
{
System.out.print(" 이름 :>>"+rs.getString("name")); // 8. ResultSet 객체 접근 getter()메서드로 값을 얻는다.
// = System.out.print(" 이름 :>>"+rs.getString(1));
System.out.print(" 키 :>>"+rs.getString("height"));
System.out.print(" 체중 :>>"+rs.getString("weight"));
System.out.print(" 나이 :>>"+rs.getString("age"));
System.out.println(" 성별 :>>"+rs.getString("sex"));
}
rs.close(); // 9. 역순으로 종료.
stmt.close();
conn.close();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
class MySql
{
private static final String driver = "com.mysql.jdbc.Driver";
private static final String url = "jdbc:mysql://localhost:3306/mydb";
private static final String user = "root";
private static final String pwd = "12345";
public static void main(String args[])
{
Connection conn;
Statement stmt;
ResultSet rs;
try
{
Class.forName(driver); // 2. 드라이버 로딩
System.out.println("MySql드라이버 로딩 성공");
conn = DriverManager.getConnection(url,user,pwd); // 3. Connection 얻기
System.out.println("Connectoin 생성 성공");
stmt = conn.createStatement();
System.out.println(" Statement 생성 성공"); // 4. Statement 생성
String query = "INSERT INTO member VALUES('이철수','166','45',18,'m')";// 5. Query문 작성
System.out.println(query);
stmt.executeUpdate(query); // 6. Query문 전송
String query2 = "select * from member"; // 5. Query문 작성
System.out.println(query2);
rs = stmt.executeQuery(query2); // 6. Query문 전송
while(rs.next()) // 7.result를 얻는다.
{
System.out.print(" 이름 :>>"+rs.getString("name")); // 8. ResultSet 객체 접근 getter()메서드로 값을 얻는다.
// = System.out.print(" 이름 :>>"+rs.getString(1));
System.out.print(" 키 :>>"+rs.getString("height"));
System.out.print(" 체중 :>>"+rs.getString("weight"));
System.out.print(" 나이 :>>"+rs.getString("age"));
System.out.println(" 성별 :>>"+rs.getString("sex"));
}
rs.close(); // 9. 역순으로 종료.
stmt.close();
conn.close();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}