Page 158 - MDP2020-3
P. 158

152
                      |    인천전자마이스터고등학교  ·············································································································

              나. JDBC



              Java – 데이터베이스 간의 통신에서 필요로 되는 기능은 데이터 추가, 조회 기능이었습니다.
            결과를 기록하는 용도로 데이터베이스를 이용한다고 하였기에 삭제와 관련된 부분은 제외하고
            위 두 개의 기능에 대해서 프로그래밍 하였습니다. JDBC의 경우 RxTx와 비교하였을 때 비교적

            예제 코드를 많이 수정할 필요는 없었습니다. 그러나 두 개를 합치게 될 경우 현재로써 각각의
            main()이 존재하기 때문에 이 main()을 하나로 합치는 작업과 동시에 필요한 코드들에 대하여
            분석을 진행하였습니다.


              우선 JDBC의 동작은 크게 4가지로 분류할 수 있습니다. 먼저 JDBC를 사용하기 위해 메모리에
            드라이버를  로딩해야  합니다. 이때 로딩하는 드라이버의 경우 사용하는 데이터베이스의 종류

            (오라클,  MySQL,  PostgreSQL  등등)에  따라  다르며  프로젝트에서  사용할  MySQL의  경우
            com.mysql.jdbc.Driver를 로딩해주면 됩니다. 다음으로 드라이버 로딩이 성공했다면 데이터베
            이스와 연결을 해주어야 합니다. 여기서 기존에 데이터베이스에 접속하는 방법과 약간의 차이
            가 있는데. PHP에서 데이터베이스에 연결할 때는 주소, 아이디, 패스워드, 데이터베이스 명을
            사용했던 것과 다르게 JDBC는 주소에 데이터베이스 명을 포함하게 됩니다. 따라서 주소의 형식

            을 “jdbc:mysql://<주소>:[포트번호]/<데이터베이스 명>” 와 같이 지정해주어야 합니다.


              데이터베이스와 정상적으로 연결이 되었으면 프로그램에서 지정한  SQL 질의문을  실행한 후
            해당되는 결과값을 받아옵니다. 만약 조회를 요청하였을 경우 조회한 값에 대해 받아오며, 데
            이터 추가를 하였을 경우 성공하였는지 실패하였는지를 받아와 다음 행동의 매개체로 동작할

            수 있도록 합니다. 마지막으로 모든 과정에 이상이 없었을 경우 데이터베이스 연결을 해제하고
            해당 결과값을 이용한 동작을 수행합니다.


              위에서 설명한 일련의 과정을 코드로 변경하면 다음과 같이 구성됩니다.



            try{
                        1) 드라이버 로딩
                        Class.forName("com.mysql.jdbc.Driver");


                        2) 데이터베이스 연결

                        String url = "jdbc:mysql://<주소>/<DB>";
                        conn = DriverManager.getConnection(url, "<DB 아이디>", "<DB 패스워드>");


                        3) 쿼리 수행을 위한 Statement 객체 생성
                        stmt = conn.createStatement();



                        4) SQL 쿼리 작성
                        String sql = "<쿼리 내용>";
   153   154   155   156   157   158   159   160   161   162   163