JDBC Connection 연결 먼저 진행해주세요
잘 모르시면 해당 글 보면 정리되어있습니다.
http://realizetoday.tistory.com/1
[Java]JDBC로 Mysql 접속 - 에러해결
내가 겪은 문제 Communication Link Failure 라는 에러와 time_out이 발생하면서 JDBC 와 Mysql 연결이 안됐음 환경 DBMS : Mysql 8.0.27 Server : Ubuntu 20.04 Client : Windows 10 IDE : Intellij ( Java 17 ve..
realizetoday.tistory.com
1. Statement 객체를 먼저 생성해야합니다.
- Statment 객체란 ?
실제 데이터베이스에 SQL 쿼리문을 보내기 위해 필요한 객체이다.
- Statment 객체에서 자주 사용되는 메소드
메소드 | 설명 | |
executeQuery(String sql) | SELECT문을 실행할 때 사용한다 (ResultSet 객체 반환) | |
executeUpdate(String sql) | 삽입, 수정, 삭제와관련된 SQL문 실행에 사용한다. | |
close() | Statement 객체를 반환할 때 사용한다 (연결종료) |
- 객체생성 방법
JDBC 연결인 Connection 안의 메소드인 createStatement() 로 생성 가능
Statement stmt = conn.createStatement();
2. 필요한 쿼리문 작성
주의 : Connection에서 접속한 DB에 있는 테이블에 관한 내용들에만 쿼리문을 작성할 것
stmt.executeQuery("SELECT * from user_tbl");
3. 쿼리문을 작성한 결과값을 ResultSet에 저장한다.
ResultSet은 Statement를 통해 받아온 값을 저장 할 수 있다.
public class ConnectionTest {
public static Statement stmt;
public static void main(String[] args) {
Connection conn = null;
ResultSet resultSet = null;
try {
//connection 생략
stmt = conn.createStatement();
resultSet = stmt.executeQuery("SELECT * from user_tbl");
}catch (Exception e) {
System.err.println("Cannot connect to database server");
System.err.println(e.getMessage());
e.printStackTrace();
}
}
}
4. 저장한 값을 출력 - resultset.getXXX() 메소드 사용
1) ResultSet은 행 단위로 데이터를 처리한다.
2) 한 행이 끝나고 다음 행으로 넘어가려면 next() 메소드를 사용해야한다.
-> 다음 행이 있으면 true를 반환하고 없으면 false를 반환한다.
3) getXXX() 메소드 설명
-> getXXX에는 DB의 컬럼 타입(int String Date 등등)이 들어가게 된다.
-> () 안에는 인자값으로 컬럼의 위치나, 컬럼 이름을 넣으면 된다.
전체 코드
import java.sql.*;
public class ConnectionTest {
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String URL = "jdbc:mysql://내 서버 ip:포트번호/users";
private static final String USER = "유저아이디";
private static final String PW = "유저비번";
public static Statement stmt;
public static void main(String[] args) {
Connection conn = null;
ResultSet resultSet = null;
try {
//드라이버는 연결이 됐다. 17버전으로 했을 때
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USER, PW);
stmt = conn.createStatement();
resultSet = stmt.executeQuery("SELECT * from user_tbl");
//rs.next()를 통해 다음행을 내려갈 수 있으면 true를 반환하고, 커서를 한칸 내린다. 다음행이 없으면 false를 반환한다.
while(resultSet.next()) {
//getInt(1)은 컬럼의 1번째 값을 Int형으로 가져온다. / getString(2)는 컬럼의 2번째 값을 String형으로 가져온다.
System.out.println(resultSet.getInt(1) + "\t" + resultSet.getString(2));
}
System.out.println("Database connection established");
} catch (Exception e) {
System.err.println("Cannot connect to database server");
System.err.println(e.getMessage());
e.printStackTrace();
}
finally {
if (conn != null) {
try {
conn.close();
resultSet.close();
stmt.close();
System.out.println("Database Connection Terminated");
} catch (Exception e) {}
}
}
}
}
결과값
'Java' 카테고리의 다른 글
Apache JMeter - nginx-rtmp 미디어서버 성능테스트 HLS livestreaming (0) | 2022.07.06 |
---|---|
Apache JMeter - 설치 및 사용법 (웹서버 성능테스트) (0) | 2022.07.05 |
[JDBC]JDBC와 Mysql 연결 - 에러해결 (6) | 2021.12.21 |
댓글