일지이기 때문에 일기의 성격이 더 강합니다.

JAVA에서 DB 연결
JAVA에서 DB를 연결을 한다. oracle 기반일 경우 라이브러리 ojdbc가 필요하다.
이후 DriverManager 및 Connection을 import한다.
import java.sql.Connection;
import java.sql.DriverManager;
DriverManager.getConnection();을 사용해서 연결하면 된다. 아래와 같이 사용한다.
Connection con = DriverManager.getConnection(url, user, pwd);
순서대로 연결할 DB, 계정명, 해당 계정의 패스워드를 입력한다.
url의 경우는 아래와 같다.
//jdbc:jdbc종류:@ip주소:포트:sid
jdbc:oracle:thin:@localhost:29889:xe
con이 존재하거나 하면 바로 연결이 된다.
DB 연결은 연결이 안 될 수도 있으므로 try-catch 사용을 권장한다. 이 경우 catch라면 보편적인 e.printStackTrace();문을 출력하는 걸 추천한다.
레코드 값 받기
Statement 사용 및 ResultSet 사용
Statement는 Connection으로 연결한 객체에 쿼리 작업을 실행하기 위한 객체이다. 뒤에 다음과 같은 메서드들을 붙일 수 있다.
executeQuery()
안에 String Query문이 들어간다. select 및 show문을 위해서 사용한다. 이 결과값은 ResultSet에서 받을 수 있다.
executeUpdate()
안에 String Query문이 들어간다. SQL DML(Create·Update·Delete)에 사용하기 위해 사용한다.
ResultSet
excuteQuery()에서 나타난 것을 받아 저장할 수 있다.
import java.sql.Statement;
import java.sql.ResultSet;
public class DBConnect {
public static void main(String[] args) {
// 여기에 DB 커넥트 과정을 거침, dbCon을 반환받는다.
Statement stmt = null;
ResultSet rs = null;
con = dbCon.getConnection();
stmt = con.createStatement();
String sql = "SELECT * FROM table ORDER BY columnNo";
rs = stmt.executeQuery(sql);
}
}
ResultSet.next()의 경우 참조 레코드가 있으면 true, 없으면 false를 반환한다.
ResultSet와 while문을 사용하여 레코드값을 출력할 수 있다.
ResultSet.getString(columnIndex) / ResultSet.getInt(columnIndex)
컬럼의 indx인 columnIndex를 입력하여 내용을 받아 필드에 저장할 수 있다. 다음과 같은 느낌이 된다.
while(rs.next()) {
String columnNo = rs.getString(1);
String columnName = rs.getString(2);
System.out.format("%-10s\t %-20s\n",
columnNo, columnName);
}
마무리로 모든 과정을 거치면 close()를 해줘야 한다. 이 경우 생성의 역순이 된다.
import java.sql.Statement;
import java.sql.ResultSet;
public class DBConnect {
public static void main(String[] args) {
// 여기에 DB 커넥트 과정을 거침, dbCon을 반환받는다.
Statement stmt = null;
ResultSet rs = null;
con = dbCon.getConnection();
stmt = con.createStatement();
String sql = "SELECT * FROM table ORDER BY columnNo";
rs = stmt.executeQuery(sql);
while(rs.next()) {
String columnNo = rs.getString(1);
String columnName = rs.getString(2);
System.out.format("%-10s\t %-20s\n",
columnNo, columnName);
}
rs.close();
stmt.close();
con.close();
}
}
총집약하여 간단히 말하면 이런 느낌이다.
DB CRUD
prepareStatement
위를 응용하여 CRUD를 진행하면 되지만, 문제는 Statement의 특징이다. Statement는 처리를 할 때 이미 SQL 문 전체를 미리 적은 후에 처리를 해야하는, 전처리가 필요한 객체이다. 이 경우 입력문(Scanner Input) 등을 사용하기가 어려워진다.
이를 위해 있는 것이 prepareStatement이다. 사용법은 Statement와 비슷하다.
prepareStatement를 사용하면 변수를 ?으로 바인딩한 뒤, setString 등의 메서드로 후 입력이 가능하다. 다음처럼 사용할 수 있다.
String sql = "INSERT INTO table VALUES(?,?,?,?,?,?,?)";
pstmt = con.prepareStatement(sql);
String columnNo = "1";
String columnName = "컬럼명";
pstmt.setString(1, columnNo);
pstmt.setString(2, columnName);
이를 사용하여 입력문 등으로 쉬이 CRUD가 가능해진다.
'부트캠프 일지 > Java 풀스택 과정 강의' 카테고리의 다른 글
| [Java 풀스택 과정 강의] 2월 24일 (0) | 2026.03.02 |
|---|---|
| [Java 풀스택 과정 강의] 2월 23일 (0) | 2026.03.02 |
| [Java 풀스택 과정 강의] 2월 12일 (0) | 2026.02.21 |
| [Java 풀스택 과정 강의] 2월 11일 (0) | 2026.02.21 |
| [Java 풀스택 과정 강의] 2월 10일 (0) | 2026.02.16 |