드디어 막바지이다 !!
몇일 전부터 배우기 시작한 SQL 데이터베이스도 마무리를 하였고 오늘은 자바와 데이터 베이스연동을 해볼것이다!!
JDBC 개념
JDBC 란 Java DataBase Connectivity의 약어로 , 자바에서 데이터베이스 연동 프로그램을 개발하려고 만든 기술이다.
아래의 순서대로 실행이 된다 (JDBC 다운로드와 설정은 맨 아래에 작성해 놓았다. )
순서대로 진행을 해보도록 하겠다.
@1. JDBC 드라이버 로드
Class.forName("com.mysql.cj.jdbc.Driver");
@2. 데이터 베이스 연결 (커넥션을 이용해준다 )
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/girlgroupdb?serverTimezone=UTC","root","12345");
@3. Statement 생성 2가지 방법이 있다.
#1
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("select * from membertbl");
ResultSet rs (이부분은 뒤에 나옴 )
(SELECT 문 사용할땐 executeQuery( SQL문 작성 공간 )이 메소드 사용 )
statement.executeUpdate("UPDATE membertbl SET age = age+1 where singer='지수'");
(UPDATE 문 , DELETE문 사용할땐 executeUpdate( SQL문 작성 공간) 이 메소드 사용 )
#2 ( SQL문을 미리 만들어 두고 변수를 따로 입력하는 방식이므로 효율성이나 유지보수 측면에서 유리하다.
PreparedStatement prepared = connection.prepareStatement("select singer, age from membertbl where groupname like ?");
(위에서 ? 표는 나중에 내가 입력하겠다는 말이다 )
preparedStatement.setString(1,"%"+name+"%");
( preparedStatement.setString( ) 으로 아까 ? 부분을 채워넣는다 , 1번은 첫번째 물음표라는 소리이다. 여러개도 가능)
preparedStatement.executeUpdate();
전체적으로 활용은 두개가 비슷하다!!
@4. sql문 전송
preparedStatement.executeUpdate();
statement.executeUpdate("UPDATE membertbl SET age = age+1 where singer='지수'");
(Statement 나 PreparedStatement의 executeUpdate() 메소드 사용 )
@5. 결과 받기 (ResultSet 객체를 사용해서 받아옴 )
ResultSet rs = preparedStatement.executeUpdate();
ResultSet rs = statement.executeQuery("select * from membertbl");
로우에서 각 칼럼값을 가지고 오려면 rs.getxxx( ) 메소드 사용 # xxx 은 String ,int 등등을 사용할수 있다.
rs.getString(1); or rs.getString("name"); ------- 열 번호는 열의 이름 적으면 된다.
rs.getInt(1); or rs.getInt("name"); ------- 열 번호는 열의 이름 적으면 된다.
@6. 연결해제
만들어 두었던거 해제
rs.close();
connection.close();
대략적인 순서는 이렇게 되고 각각의 메소드를 보자
Statement
ResultSet
연습문제
일단 데이터 베이스에 해당 테이블을 만들어 줘야함 (데이터 베이스 생략 )
메인 코드
public class Jdbc_Ex3 {
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/girlgroupdb?serverTimezone=UTC", "root", "12345");
System.out.println("DB 연결 성공");
Statement statement = connection.createStatement();
Scanner scanner = new Scanner(System.in);
System.out.println("## 이벤트 등록을 위해 이름과 이메일을 입력하세요");
System.out.print("이름 : " );
String name = scanner.next();
System.out.print("이메일 : ");
String email = scanner.next();
statement.executeUpdate("INSERT INTO eventtbl VALUE('"+name+"','"+email+"')");
System.out.println("# 등록자 명단 ");
ResultSet rs = statement.executeQuery("SELECT * FROM eventtbl");
while(rs.next()){
System.out.println(rs.getString(1)+ ","+rs.getString(2) );
}
} catch (ClassNotFoundException | SQLException e) {
System.out.println("드라이버 오류 또는 SQL접속 오류 또는 문장 실행 오류");
e.printStackTrace();
}
}
}
자바와 sql 연동하기
다운로드 버튼 클릭
들어간 화면에서 아래로 스크롤후에 해당 버튼 클릭
들어가면 보이는 Connector/j가 자바이다 이거 클릭
현재 25버전 에러가 많으니 Archives 클릭
20버전으로 변경 해주고 Platform Independent 변경후 ( 윈도우이다 ) 다운로드
다운로드후 압출 풀어준뒤에 저기 보이는 파일 자바 폴더에 넣어주기 ( 찾아가기 편하게 하기위함)
연동할 프로젝트에서 마우스 오른쪽 누른뒤에 그림에 따라 실행
들어가서 해당 순서대로 실행하면 이 프로젝트는 MySQL 데이터 베이스와 연동이 된다.
'아옳옳의 코딩공부 > 아옳옳 자바코딩공부' 카테고리의 다른 글
2021-05-20자바공부(네트워크 시험) (0) | 2021.05.20 |
---|---|
2021-05-17안드로이드공부(네트워크 프로그래밍) (0) | 2021.05.18 |
2021-05-12자바공부(paths 와 path) (1) | 2021.05.12 |
2021-05-11자바공부(파일 클래스) (0) | 2021.05.11 |
2021-05-10자바공부(파일과 I/O 스트림) (0) | 2021.05.10 |