JDBC는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
API : application programming interface
oracle 데이터베이스 url,id,password의 값을 필드로 가져와 DriverManager 클래스에 매개변수 값으로 준다 이때, connection 클래스의 getconnection을 통해 연결을 하게된다.
Connection conn = DriverManager.getConnection(url,user,password);
기본 sql문의 삽입은 try문 안에 String sql =
식으로 값을 사용할 수 있다.
jdbc에서
짤막한 클래스의 의미 설명
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
//Statement : db와 연결되어있는 connection 객체를 통해 sql문을 db에 전달하여 실행하고
// ㄴ 결과를 리턴받아주는 객체,
//prepared : SQL 이 미리 컴파일되어 준비된
//ResultSet : SELECT문의 결과를 저장하는 객체
//executeQuery : 받아온 쿼리문을 실행, SQL문을 실행한 다음 레코드셋을 반환하는 경우
String sql ="insert into TBL_STUDENT values (?,?,?,?)";
sql문의 값을 사용자가 직접 입력하고 싶을때 아무런 기호 없이 ? 를 쓰면된다 후에
PreparedStatement pstmt = conn.prepareStatement(sql);
받아온 sql문의 데이터의 결과를 리턴받아주는 객체에 set'타입'으로 sql문 테이블 values값에 인덱스 별로 값을 할당해주면 된다 인덱스는 1부터 시작한다.
dto = 데이터 전송 객체
dao = dto의 데이터를 사용해 main 클래스에서 사용될 메서드를 만듬
기본적인 dao 메서드 만드는법
public 타입
메서드명
(타입``매개변수
) throws sqlexception{ //예외처리
Connection connection = OracleUtility.getConnection(); //만들어둔 jdbc파일에 연결해서 데이터베이스에 접근
String sql ="sql문"
; //sql문 조회
PreparedStatement ps = connection.prepareStatement(sql); sql문을 사용할 수 있도록 컴파일 객체인 preparedStatement에 담아줌
객체에 저장된 sql문의 setString(index,매개변수)를 넣어서 해당 행을 알려준다
ResultSet rs = ps.executeQuery(); //ps.sql수행메소드로 실행
JCustomer result = null;
if(rs.next()) {
result = new JCustomer(rs.getString(1),
...
}
ps.close();
connection.close(); //메모리 누수 방지
return result;
메소드의 커밋과 롤백
사용한 메소드가 실행 도중 취소해야할 일이 생겼을때
try{
connection.setAutocommit(false); DB에 보내는 데이터의 자동 커밋제한을 둔다
for반복문{
}
connection.commit //반복문을 실행하고자 할때 수동 커밋을한다.
}catch(sqlException e){ 첫번재 try문 안에 반복문을 취소 하며 데이터를 롤백시킨다.
}
try{
connection.rollback
}