본문 바로가기

건승하고있어요/Java

[JDBC] MySQL JDBC 클래스 만들기

반응형

본인은 아직 MyBatis에 능숙하지 못하여 매번 직접 요렇게 jdbc로 디비에 접속을 한다. 머리가 모자라면 몸이고생..

mySql의 경우에는 사용하는 database를 한 번 더 만드는 과정이 있어서 그걸 설정해 줘야 한다.

근데 웃긴 것은  할 때마다 맨날 까먹어서 맨날 다시 찾아보고 찾아보고 하는 그 시간이 너무 슬퍼서...복사해다 쓰려고 남겨놓스빈다.


mysql을 연결하기 전에 jar파일을 다운



Maven인 경우

해당 프로젝트 pom.xml에 들어가서 dependency에 추가한다.

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${org.springframework-version}</version>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.38</version>

</dependency>


Maven이 아닌 경우

http://dev.mysql.com/downloads/connector/j/
에 가서  파일을 다운받은 뒤 properties - java build path 에서 라이브러리를 추가한다.



그리고 클래스를 만든다. (참고: 퀵스프링스타트, 채규태 저)

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
 
import com.mysql.jdbc.PreparedStatement;
 
public class JDBCUtil {
    public static Connection getConnection() {
        try {
            
            Class.forName("com.mysql.jdbc.Driver");
            return DriverManager.getConnection("jdbc:mysql://localhost:3306/사용할데이터베이스이름?autoReconnect=true&useSSL=true""아이디""비밀번호");
                    
            
        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public static void close(java.sql.PreparedStatement stmt, Connection conn) {
        if(stmt != null) {
            try {
                if(!stmt.isClosed()) stmt.close();
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                stmt = null;
            }
        }
        
        if(conn != null) {
            try {
                if(!conn.isClosed()) conn.close();
            } catch(Exception e) {
                e.printStackTrace();
            }finally {
                conn = null;
            }
        }
    }
    
    public static void close(ResultSet rs, PreparedStatement stmt, Connection conn) {
        if(rs != null) {
            try {
                if(!rs.isClosed()) rs.close();
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                rs = null;
            }
        }
        
        if(stmt != null) {
            try {
                if(!stmt.isClosed()) stmt.close();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                stmt = null;
            }
        }
        if(conn != null) {
            try {
                if(!conn.isClosed()) conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                conn = null;
            }
        }
    }
}
 
cs


필요할 때 갖다 쓴다.

ex)

public void insert(BoardVO vo) {

try {

conn = JDBCUtil.getConnection(); <--아까 만들었던 클래스에서 커넥션 가져오기

stmt = conn.prepareStatement("insert into board(title, writer, content) values(?,?,?)");

stmt.setString(1, vo.getTitle());

stmt.setString(2, vo.getWriter());

stmt.setString(3, vo.getContent());

stmt.executeUpdate();

}catch(Exception e) {

e.printStackTrace();

}finally {

JDBCUtil.close(stmt, conn);

}

}



반응형