■ JDBC
JDBC(Java Database Connectivity)는 Java 프로그램 내에서 DataBase로 접근 할 수 있도록 해주는 자바API이며
SQL을 이용하여 자바 프로그래밍 언어로 데이터베이스 응용 프로그래밍을 작성할 수 있도록 지원한다
● JDBC 동작 흐름
JDBC API를 사용하기 위해서는 JDBC 드라이버를 먼저 로딩한 후에 데이터베이스와 연결하게된다
● JDBC 사용객체
DriverManager | JDBC 드라이버를 통해서 커넥션을 만드는 역할 getConnection()메소드를 호출하여 Connection 객체를 반환한다 |
Connection | DB의 연결정보를 담고 있는 객체 |
Statement | 해당 DB에 SQL문을 전달하고 실행한 후 결과를 받아내는 객체 |
Result Set | SELECT문을 사용시 조회된 결과가 반환되는 객체 |
■ 활용해보기
1) Dto 클래스 생성
변수들은 private으로 선언해주었고 getter, setter, toString을 만들어주었다
public class Note1 {
private int num;
private int uniformnum;
private String team;
private String name;
private String position;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getUniformnum() {
return uniformnum;
}
public void setUniformnum(int uniformnum) {
this.uniformnum = uniformnum;
}
public String getTeam() {
return team;
}
public void setTeam(String team) {
this.team = team;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
@Override
public String toString() {
return "Note1 [num=" + num + ", uniformnum=" + uniformnum + ", team=" + team + ", name=" + name + ", position="
+ position + "]";
}
}
2) DB연결을 위한 메소드 생성
Connection getConnection() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb";
String id = "root";
String pwd = "1234";
Connection conn = DriverManager.getConnection(url, id, pwd);
return conn;
}
3) DB에 데이터 추가
int insertInfo() throws Exception {
Note2 n2 = new Note2();
con = n2.getConnection();
String sql = "insert into soccer values(null,?,?,?,?);";
Note1 n1 = new Note1();
n1.setUniformnum(7); // setter 활용하여 필드의 변수에 값 추가
n1.setTeam("토트넘");
n1.setName("손흥민");
n1.setPosition("FW");
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, n1.getUniformnum()); // getter로 n1에 각각 들어있는 값 PreparedStatement에 담아주기
pstmt.setString(2, n1.getTeam());
pstmt.setString(3, n1.getName());
pstmt.setString(4, n1.getPosition());
int result = pstmt.executeUpdate(); // 결과 받기
System.out.println("등록 성공");
return result;
}
4) Main에서 메소드 호출
위의 메소드를 활용하여 손흥민, 김민재의 정보를 넣어주었고 값이 잘 들어갔는지 mysql에서 확인해보았다
public class Main {
public static void main(String[] args) throws Exception {
Note2 n2 = new Note2();
n2.insertInfo();
}
}
5) select를 활용하여 DB에 입력되어 있는 값 출력해보기
soccer 라는 table에 들어있는 num을 기준으로 내림차순으로 출력되도록 만들어보았고 list에 객체를 넣어주고 DB의 해당 정보를 n1 객체의 각각 변수에 담아주었다
List<Note1> selectInfo() throws Exception {
Note2 n2 = new Note2();
n2.getConnection();
List<Note1> list = new ArrayList<>();
con = n2.getConnection();
String sql = "select * from soccer order by num desc;";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) {
Note1 n1 = new Note1();
n1.setNum(rs.getInt(1));
n1.setUniformnum(rs.getInt(2));
n1.setTeam(rs.getString(3));
n1.setName(rs.getString(4));
n1.setPosition(rs.getString(5));
list.add(n1);
}
return list;
}
6) Main에서 출력결과를 코드 작성
public class Main {
public static void main(String[] args) throws Exception {
Note2 n2 = new Note2();
//n2.insertInfo();
List<Note1> list = n2.selectInfo();
for(Note1 n : list) {
System.out.println(n.toString());
}
}
}
-Today short review-
JDBC를 이용하여 select, insert로 DB에 정보 입력, 출력을 해보았습니다.
잘못된 부분이 있다면 알려주시면 감사하겠습니다.
'JAVA' 카테고리의 다른 글
자바 JDK 설치 및 환경변수 설정 (0) | 2023.10.23 |
---|---|
자바 제네릭(Generic) (0) | 2023.10.16 |
자바 static (0) | 2023.10.10 |
자바 인터페이스(Interface) (0) | 2023.10.06 |
자바 상속 extends (0) | 2023.09.29 |