DB/MySQL 10

[JDBC 프로그래밍 흐름] DB연결 관련 자원반납

DB연결 관련 자원반납 - ResultSet close - PreparedStatement close - Connection close close() 메소드를 알맞게 호출해주지 않을경우 생기는 문제 ( 자원반납 안했을때 생기는 문제) 1) Statement 닫지 않을경우 , 생성된 Statement 개수가 증가하여 더이상 Statement를 생성 불가능 2) close() 하지 않으면 불필요한 자원(네트워크 및 메모리)을 낭비하게 된다. 3) DBMS에 연결된 새로운 Connection을 생성 불가능 일반적으로 finally 에서 close() 처리 try{ ... }catch(Exception e){ ... }finally{ if(rs!=null){try{rs.close()}catch(Exception..

DB/MySQL 2020.11.24

[JDBC] SQL 수행 메소드

SQL 수행 메소드 - Statement 객체가 데이터베이스에게 SQL문을 전송하는 방법은 SQL문에따라 3가지로 나뉨 1) execute(String sql) - 질의문(SELECT)나 갱신문(UPDATE, INSERT, DELETE) 모두 사용가능 - SQL문이 여러개의 ResultSet 객체나 여러개의 갱신카운트 또는 ResultSet 객체들과 갱신 카운트들의 결합을 리턴하는 것이 가능할때 사용 - 질의문 결과(ResultSet)을 얻기 위해서는 별도로 마련된 getResultSet() 메소드 사용해야된다 - boolean값 반환 boolean isResult = statement객체.execute(sql); 2)executeUpdate(String sql) - INSERT문이나 CREATE문, D..

DB/MySQL 2020.11.24

[JDBC 프로그래밍흐름] ResultSet

ResultSet - statement or PreparedStatement 객체로 select문을 사용해 얻어온 레코드 값들을 테이블의 형태로 갖게되는 객체 - select의 결과를 저장하는 객체 - executeQuery : DB에 명령 - 값얻기 -> rs.getXXX("속성"or 1부턱시작하는컬럼순서); private ResultSet rs; //명령어를 처리하고 그 결과값을 가져온다 rs = ps.executeQuery(); while(rs.next()){ // rs.next() 메소드는 다음행이 없는 경우 false리턴 int id = rs.getInt(1); //첫번째 컬럼 데이터 받아옴 String name = rs.getString("name"); //이름이 "name"인 컬럼의 데이터 ..

DB/MySQL 2020.11.20

[JDBC 프로그래밍 흐름] Statement / PreparedStatement

Statement - Statement / PreparedStatement - SQL 구문을 실행하는 역할 - 스스로는 SQL 구문해석 하지 못하고 전달역할 Statement PreparedStatement ㆍ sql문이 달라지더라도 한개만 생성해서 재사용 가능 ㆍ 매번 컴파일 수행 ㆍ 단일로 사용될 때 빠른 속도를 가짐 ㆍ statement의 기능 향상 ㆍ 코드 안정성과 가독성이 statement보다 높음 ㆍ sql문마다 객체 각각 생성해야되기 때문에 재사용 불가능 ㆍ 처음 프리컴파일 된 후, 이후에는 컴파일 수행안해도 됨 ㆍ 반복실행시 성능면에서 statement보다 빠름 preparedStatement - Connection 객체의 PreparedStatement() 메서드 이용해 생성가능 - SQ..

DB/MySQL 2020.11.20

[JDBC 프로그래밍 흐름 ] Connection

Connection - java.sql.DriverManager 클래스가 제공하는 getConnection()메서드가 Connection 객체를 생성해서 리턴 - DriverManager.getConnection() 메서드가 Connection 객체 생성하지못하면 SQLException 발생 DriverManager.getConnection 메서드 구조 DriverManager.getConnection(String jdbcURL, String user, String password) Connection 생성코드 Conection con= null; try{ // 각각 변수명 변경가능 // jdbc드라이버이름 = com.mysql.jdbc.Driver // 데이터베이스 식별자 = host:port/data..

DB/MySQL 2020.11.18

[ JDBC 프로그래밍 흐름 ]JDBC 드라이버 로드

Class.forName("JDBC드라이버 이름"); *MySQL인 경우 -> JDBC 드라이버이름 : com.mysql.jdbc.Driver - 메서드는 지정한 클래스 정보를 담고 있는 Class 인스턴스 구해주는 기능만 제공 - 사용이유 : JDBC 드라이버에 해당하는 클래스들은 이 메소드를 통해 로딩될 때 자동으로 JDBC 드라이버로 등록해주기 때문이다. 사용법 try { Class.forName("JDBC 드라이버 이름"); }catch (classNotFoundException e){ // 지정한 클래스가 존재하지 않는 경우 예외처리 }

DB/MySQL 2020.11.18

[라이브러리] java.sql Package

1) java.sql.Driver - DB와 연결하는 Driver class를 만들 때 반드시 구현해야되는 인터페이스로 JDBC 드라이버의 중심이 되는 인터페이스 2) java.sql.Connection - 특정 데이터베이스와 연결정보를 가지는 인터페이스 - DriverManager 로부터 Connection 객체를 가져온다. 3) java.sql.Statement - SQL query문을 DB에 전송하는 방법을 정의한 인터페이스 - Connection 을 통해 가져온다. 4) java.sql.ResultSet - SELECT 구문 실행 결과를 조회할 수 있는 방법을 정의한 인터페이스 5) java.sql.PreparedStatement - Statement의 하위 인터페이스 - SQL문을 미리 컴파일 ..

DB/MySQL 2020.11.18