728x90
반응형
오늘의 DB를 연동시킬 수 있게 도와주는 새로운 클래스는 Connection, Statement ,ResultSet!
DB를 연동시키기 위해서 하나의 파일을 다운받아야 하는데, 이 JAR파일이 Connection의 인터페이스 메서드를 오버라이딩 해줌으로써 SQL와 연동시킬 수 있다.
Connection은 인터페이스로 개발자가 서버 연동을 위해 메서드를 구현할 필요 없이 서버 배포자에게 메서드 구현을 전가해 개발자의 편의를 높였다.
아래의 링크에 들어가서 JAR파일을 다운받고, 프로젝트의 build path에 들어가서 classpath에 넣어주자.
https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.28
솔직히 DB 연동하는 법을 먼저 배울 때 아래 코드를 볼 때 좀 많이 막막했다.
아래 코드를 간략하게 설명한 주석을 보면서 일단 따라치고 몸으로 체득하는 편이 좋다.
다 완성했으면 main 클래스에서 실행하여 DB와 연동이 되는지 확인 후 프로젝트에 적용할 것
Connection conn = null;
Statement stmt = null;
// 개발자가 데이터 연결을 위한 로직을 신경쓰지 않고 데이터베이스 벤더에게 연결 로직의
// 구현을 맡겨서 접근성을 용이하게 함
// 데이터 연결을 위한 인터페이스의 구현을 위해 파일을 포함시켜 주면 그 객체를
// Class.forName을 통해 구현할 수 있다.
// show globlavariables like 'port'; = mySQL 포트번호 확인하는 법
try{
System.out.println("Connecting to database...");
// DB 연결하는 구문
String url = "jdbc:mysql://localhost:3307/mydb?characterEncoding=UTF-8&serverTimezone=UTC&SSL=false";
// 위의 경로를 보면 /뒤에 원하는 데이터베이스를 바꿔줘야 그 데이터로 접속이 됨
// 경로 복붙하는 편이 정신건강에 좋을듯?
Class.forName("com.mysql.cj.jdbc.Driver");
// 받은 파일의 인터페이스를 구현하기 위해 jar 파일에서 가져오는 구문
conn = DriverManager.getConnection(url, "root", "tjoeun");
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql = "SELECT * FROM dbtable";
ResultSet rs = stmt.executeQuery(sql);
// sql을 사용하기 위한 가상의 객체 rs를 가져와서
while(rs.next()){ // => 데이터 행이 여러개면 아래의 객체를 전부 행대로 출력함
// 만약 값이 있다면 다음을 출력
//Retrieve by column name
int num = rs.getInt("NUM");
String name = rs.getString("ID");
Date date = rs.getDate("HIREDATE");
int deptno = rs.getInt("DEPTNO");
int sal = rs.getInt("sal");
String division = rs.getString("DIVISION");
// 추출한 데이터를 String 타입을 받는다는 뜻
// int면 getInt, getFloat등 지정해서 출력
//Display values
System.out.printf("%d %s %s %d %d %s\n",
num, name, date, deptno, sal, division);
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
try{
if(conn!=null)
conn.close();
// 오류가 났더라도 일단 데이터베이스를 닫아야 다른사람이 접속할 수 있으므로
// 반드시 finally 구문으로 끊어줘야함
// 동시접속 제한!!!!!
}catch(SQLException se){
se.printStackTrace();
}
}//end of catch
System.out.println("\nGoodbye!");
}//end finally
}//end of main()
728x90
반응형
'국비과정 > DB - mySQL' 카테고리의 다른 글
FOREIGN KEY의 사용법, 예제 (0) | 2022.03.31 |
---|---|
DB의 정규화 (0) | 2022.03.21 |
mySQL 더블쿼리, foriegn key, union, outer join 사용법 (0) | 2022.03.16 |
mySQL - describe, ordered by, length 등 총 함수 설명 (0) | 2022.03.15 |
mySQL 서버 설치하는 방법 (0) | 2022.03.15 |