Ⅵ. JDBC SELECT 테스트
1. JDBC SELECT 테스트
- 테이블을 선택하여 출력하고 싶을 경우에 사용
- Article.java에 다음과 같이 입력
package exam;
public class Article {
public int id;
public String regDate;
public String updateDate;
public String title;
public String body;
public Article(int id, String title, String body) {
this.id = id;
this.title = title;
this.body = body;
}
public Article(int id, String regDate, String updateDate, String title, String body) {
this.id = id;
this.regDate = regDate;
this.updateDate = updateDate;
this.title = title;
this.body = body;
}
@Override
public String toString() {
return "Article [id=" + id + ", regDate=" + regDate + ", updateDate=" + updateDate + ", title=" + title + ", body=" + body + "]";
}
}
- JDBCSelectTest.java에 다음과 같이 입력
package exam;
import java.sql.*;
import java.util.*;
import exam.Article;
public class JDBCSelectTest {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Article> articles = new ArrayList<>();
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/JDBCTest?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Seoul&useOldAliasMetadataBehavior=true&zeroDateTimeNehavior=convertToNull";
conn = DriverManager.getConnection(url, "root", "");
System.out.println("연결 성공!");
String sql = "SELECT *";
sql += " FROM article";
sql += " ORDER BY id DESC";
System.out.println(sql);
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String regDate = rs.getString("regDate");
String updateDate = rs.getString("updateDate");
String title = rs.getString("title");
String body = rs.getString("body");
Article article = new Article(id, regDate, updateDate, title, body);
articles.add(article);
}
} catch (ClassNotFoundException e) {
System.out.println("드라이버 로딩 실패");
} catch (SQLException e) {
System.out.println("에러: " + e);
} finally {
try {
if (rs != null && !rs.isClosed()) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (pstmt != null && !pstmt.isClosed()) {
pstmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
System.out.println("결과 : " + articles);
}
}
2. 실행
- SQLyog로 테이블을 2개 생성함
- sts4의 SQLSelectTest.java를 실행
- 중간에 있는 While문이 테이블을 하나씩 읽어서 한번에 출력 시킴
'Back-End Study > DBMS' 카테고리의 다른 글
JDBC - 8. 게시물 수정기능 구현 (0) | 2022.09.07 |
---|---|
JDBC - 7. article list 시, 데이터를 DB로부터 가져오기 (0) | 2022.09.06 |
JDBC - 5. 게시물 작성 시, DB에 INSERT (0) | 2022.09.05 |
JDBC - 4. Insert Test (0) | 2022.09.05 |
JDBC - 3. JDBC 연결 테스트 (2) | 2022.09.05 |