본문 바로가기

아옳옳의 코딩공부/아옳옳 자바코딩공부

2021-06-02자바공부(Mysql 연동하기 )

반응형

드디어 막바지이다 !!

몇일 전부터 배우기 시작한 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 데이터 베이스와 연동이 된다. 

 

반응형