본문 바로가기
슬기로운 자바 개발자 생활/Java more

자바 마리아DB JDBC 초간단 연결 예제

by 슬기로운 동네 형 2022. 11. 19.
반응형

가끔 요상한 요구사항에 갸우뚱하곤 한다. 

자사내 타시스템 DB Mysql, Maria, Oracle 에 붙어서 자료를 연계해달라는 요구사항.

이게 연계가 맞는가 싶기도 하지만 일을 하다보면 이런저런 요구사항이 발생하기 마련.

 

 외부데이터베이스를 열어주고 그곳에서 적재해놓은 특정 테이블의 자료를 가져와야 할 경우. 솔직히 그리 복잡하게 프로그래밍을 할 필요가 있는가?

 

  방법은 많다. ( HTTP Rest API 롤 어플리케이션 , EAI 툴을 이용한 DB 자료 밀어넣기, DB링크등 ) 그런데 이건거 결정을 못하는 인간들 투성이다. 정답은 없다. 에러가 없고 운영/관리가 되어야 할뿐.

 

 데이터도 얼마되지 않고 테이블도 한두개라면 그냥 각 DB client-jdbc.jar 갖고 간단하게 구현한다. *이력 관리가 중요하지만...

 

1. 마리아 DB 테이블에 있는 내용이다. 이것이 그 중요한 연계데이터라고 치자. 이것을 읽어들여 우리 시스템 데이터베이스 특정테이블에 넣는다고 치자.

 

 

2. 간단예제니 메이븐. 마리아디비 홈페이지에가서 jar를 받아도 된다.

 

<!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
<dependency>
    <groupId>org.mariadb.jdbc</groupId>
    <artifactId>mariadb-java-client</artifactId>
    <version>3.1.0</version>
</dependency>

 

3. 간단하게 읽어들이는 코드를 짠다. 이때 3306 포트는 당근 뚫려 있어야 겠지. 집에서말고 회사에서 말이다. ㅎㅎㅎ

while 부분 코딩에 우리 시스템 DB에 insert 하는 코딩을 넣으면 되지 않겠는가?

요구사항이 복잡하지 않는다면 간단하게 에러없이 만들면 그만이다.

<난 토끼잡는데 소잡는 칼을 사용하지 말자 주의>

 

import java.sql.*;

public class DB_Connection {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        Class.forName("org.mariadb.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/test","xxxxx","xxxxx");

        if(connection != null){
            System.out.println("연결 정보 : " + connection.getMetaData().getDriverName());

            PreparedStatement preparedStatement = connection.prepareStatement("select * from country");
            ResultSet resultSet = preparedStatement.executeQuery();

            while (resultSet.next()){
                System.out.println( " Id    : " +resultSet.getString(1) +
                        ", Lang  : " +resultSet.getString(2)+
                        ", Money : " + resultSet.getString(3)+
                        ", Nation : " + resultSet.getString(4) +
                        ", Population : " + resultSet.getString(5)
                );
            }
        }
    }
}

 

얼마만에 만들어보는 옛날옛날 코드인가... 감개무량하다.

 

결과는...

반응형

댓글