자바로 프로그래밍을 아무리 잘해도 결국 db와 연동을 시켜야 사용하고자 하는 용도로 사용할 수 있다.
우선 JDBC(Java Database Connectivity)란 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
jdbc를 통해 아래와 같은 일을 수행할 수 있다. (CURD)
- insert
- select
- update
- delete
jdbc내의 Driver라는 클래스를 사용해 Java 어플리케이션과 db를 연결한다. (Connection)
주의사항으로 각 db마다 다른 Driver 클래스를 사용한다.
예) Oracle - OracleDriver, MySQL - Driver
각각의 db마다 driver class는 각각의 공식사이트에서 다운받을 수 있다. (jar)
jar 파일을 다운받아서 library -> build path -> add external archive를 통해 추가만 시켜주면 된다.
파일 다운로드및 설정의 자세한 방법은 추후에 설명하겠다.
아래의 예제를 통해 바로 Connection을 만들어 보겠다.
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnectionEx {
public static void main(String[] args) {
Connection con = null;
try {
String url = "jdbc:mariadb://127.0.0.1:8001/jaean?useUnicode=true&characterEncoding=UTF-08";
String user = "root";
String password = "toor";
con = DriverManager.getConnection(url, user, password);
System.out.println("DB연결 성공");
} catch(Exception e) {
System.out.println("DB연결 실패");
} finally {
if (con != null) {
try {
con.close();
} catch (Exception e) {}
}
}
}
}
이처럼 Connection을 통해 연결되지만 Connection을 만들 때 Driver가 필요하다.
getConnection()을 통해서 객체를 할당한다.
그래서 마지막에는 꼭 close()를 해주어야한다.
Driver는 각 사용 DB의 공식 홈페이지에서 다운 받을 수 있다고 했고
Connection은 import하면 된다.
그리고 Connection을 만들 때 필요한 세부사항만 설정해주면 된다.
String url = "jdbc:mariadb://127.0.0.1:8001/jaean?useUnicode=true&characterEncoding=UTF-08";
String user = "root";
String password = "toor";
우선 url은 연결할 DB를 나타낸다. user와 password는 DB에 접속할 때 쓰인다.
아래의 코드를 위와 대조해보길 바란다.
jdbc:Driver://IP:PortNumber/ServerName?useUnicode=true&characterEncoding=Encoding
이처럼 파란색자리에 원하는 값을 대체해서 사용하면 된다.
추가적인 설명을 더 하자면,
mariadb는 현재 사용중인 Driver를 뜻한다. (현재 mariadb 사용중)
127.0.0.1은 localhost ip를 뜻한다.
8001은 port number이다. (기본값은 3306인데 임의로 바꿈)
jaean은 DB내 서버의 이름을 뜻한다. (임의로 설정)
아래의 user와 password는 서버에 접속할 때 사용된다.
DB 생성시 사용했던 값과 동일하게 넣어주면 된다.
java와 DB를 연결하면 java에서 DB에 데이터들을 주입, 조회, 수정, 삭제 할 수 있다.
아래의 예제를 통해 jdbc가 무엇인지 설명하겠다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class DBConnectionEx {
public static void main(String[] args) {
Connection con = null;
String sql;
PreparedStatement pstmt;
try {
String url = "jdbc:mariadb://127.0.0.1:8001/jaean?useUnicode=true&characterEncoding=UTF-08";
String user = "root";
String password = "toor";
con = DriverManager.getConnection(url, user, password);
sql = "INSERT INTO\r\n"
+ " jaeantable(\r\n"
+ " num\r\n"
+ " )\r\n"
+ " VALUES(123456789)";
pstmt = con.prepareStatement(sql);
pstmt.executeQuery();
System.out.println("DB연결 성공");
} catch(Exception e) {
System.out.println("DB연결 실패");
} finally {
if (con != null) {
try {
con.close();
} catch (Exception e) {}
}
}
}
}
당연히 생소한 부분이 있을 수 있다.
하지만 이 예제를 통해 설명하고 싶은 것은 java와 db의 연결 확인이다.
해당 코드에서는 Connection과 sql문의 사용을 보여주고있다. (jdbc)
DB에 123456789를 insert하라는 내용이다.
DB에 123456789가 정상적을 들어간 것을 확인할 수 있다.
위의 코드는 jdbc를 사용을 보여주기도 한다.
정리하자면 jdbc를 사용하는 이유는,
java에서 데이터베이스에 접근, 데이터 생성, 조회, 수정, 삭제를 하기위함이다.
'Java > Java 기초' 카테고리의 다른 글
[Java] 예외처리 (Exception) (0) | 2022.05.01 |
---|---|
[Java] 컬렉션 프레임워크 Map (HashMap) (0) | 2022.04.30 |
[Java] 컬렉션 프레임워크 Set (HashSet) (0) | 2022.04.28 |
[Java] 컬렉션 프레임워크 List (ArrayList, LinkedList) (0) | 2022.04.27 |
[Java] 제네릭 (Generic) (0) | 2022.04.21 |