최근에 학교에서 이런저런것을 진행하면서 자바로 무엇인가 만들때는, 쌩으로 짜지 않고 최대한 라이브러리를 이용하려고 하고 있습니다.(일딴 검증되었으니까,.?,, 제가 짜면 괜히 느려질것 같은 그런 문제점도..) 


물론 JVM위에서 돌아가기때문에 C언어 같은 네이티브에 가까운 속도의 문제를 기대하는건 아니지만. (사실은 어떻게 하다보니.. 자바를 쓰다보니까.. 익숙해져서요..)


보통의 자바책의 맨 뒷장(예를 들어 학교 학부과정에서 쓸만한 책들,, 정말 래퍼런스 책말고..)에 보면 보통 가장 많이 나오는것중 하나가 MySQL을 이용한 프로그램 예제들입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.sql.*;
 
public class MyDBHelper {
 
 public static void main(String[] args) {
  
  Connection conn;
  Statement stmt;
  
  try {
   Class.forName("com.mysql.jdbc.Driver");
  }catch(ClassNotFoundException e) {
   System.err.print("ClassNotFoundException: ");
  }
  
  try {
   String jdbcaAddress = "jdbc:mysql://localhost:3306/mydb";l
   String id = "user";
   String pass = "userpasswd";
   
   conn = DriverManager.getConnection(jdbcUrl, Id, pass)
   
   stmt = conn.createStatement();   
   
   
   stmt.close();

   conn.close();
  }catch(SQLException e) {
   System.out.println("SQLException: " + e.getMessage());
  } 
 }
}


흔히 말하면, 이런식의 예제였죠... 그런데 요즘 이런저런것을 찾다가 Apache Commons 라는것을 알게되었습니다. 여기서 DButils라는 패키지를 제공하는데 https://commons.apache.org/proper/commons-dbutils/

한예로 들면 이곳에서 제공하는 DButils를 이용하면 다음과 같아집니다 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public MysqlHelper(String url, String user, String passwd) {
 
        String driver = "com.mysql.jdbc.Driver";
 
        if (!DbUtils.loadDriver(driver)) {
 
            logger.fatal("Failed Loading JDBC Driver!");
            System.exit(1);
 
        }
 
        try {
            connection = DriverManager.getConnection(url, user, passwd);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
    }


DButils로 DB를 연결하면 이런식의 모양이 나옵니다. 별로 자바책에서 나오는 예제하고 달라지는건 없습니다. Dbutils라는것이 연결된것 빼고는.  약간 미리 적어놓자면, 보통의 자바책이라는곳에서 DB에 Query를 날리기 위해서 String 을 이용해서 SQL를 만드는 약간의 노가다 작업이 있었는데, 이게 DButils를 이용하면 생각보다 쉽게 해결됩니다. 그 다음 포스트에서 DButils를 이용한 Select, Insert, Update 예제를 올려보도록 하겠습니다. 


저작자 표시 비영리 변경 금지
신고
1

+ Recent posts