DataBase/MySQL

[MySQL/JAVA]MySQL과 이클립스 연동하여 테이블에 데이터 select, 수정

자바칩 프라푸치노 2020. 11. 15. 16:24

안녕하세요 이번에는 mysql table에 데이터를 선택하고 수정해보겠습니다.

아래 두개의 포스팅과 이어지는 포스팅입니다.

 

2020/11/15 - [MySQL] - [MySQL/JAVA]MySQL과 이클립스 연동하기

 

[MySQL/JAVA]MySQL과 이클립스 연동하기

안녕하세요 오늘은 MySQL과 이클립스를 연동하는 방법을 알아보겠습니다. 먼저 MySQL에서 아래와 같이 쳐줍니다. (MySQL 설치, 사용법은 다른 포스팅에 포스팅하겠습니다) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 dr

sso-feeling.tistory.com

2020/11/15 - [MySQL] - [MySQL/JAVA]MySQL과 이클립스 연동하여 테이블에 데이터 삽입

 

[MySQL/JAVA]MySQL과 이클립스 연동하여 테이블에 데이터 삽입

안녕하세요 이번에는 저번에 만들었던 테이블에 데이터를 삽입해보겠습니다. 아래의 글과 이어집니다. 2020/11/15 - [MySQL] - [MySQL/JAVA]MySQL과 이클립스 연동하기 [MySQL/JAVA]MySQL과 이클립스 연동하기

sso-feeling.tistory.com

BoardDao를 아래와 같이 수정했습니다.

selectOne과 updateBoard메서드를 추가해주었습니다.

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package jdbc_connection;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
public class BoardDao {
 
    private Connection conn; //DB 커넥션 연결 객체
    private static final String USERNAME = "root";//DBMS접속 시 아이디
    private static final String PASSWORD = "DOALd1120f1gG";//DBMS접속 시 비밀번호
    private static final String URL = "jdbc:mysql://localhost:3305/boarddb";//DBMS접속할 db명
    
    public BoardDao() {
        try {
            System.out.println("생성자");
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
            System.out.println("드라이버 로딩 성공");
        } catch (Exception e) {
            System.out.println("드라이버 로딩 실패 ");
            try {
                conn.close();
            } catch (SQLException e1) {    }
        }
        
        
    }
    //db에 데이터 삽입하는 메서드
    public void insertBoard(){
        //쿼리문 준비
        String sql = "insert into board values(?,?,?,?,?,?)";
        
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1null);
            pstmt.setString(2"안녕하세요");
            pstmt.setString(3"1111");
            pstmt.setString(4"공개");
            pstmt.setString(5"홍길동");
            pstmt.setString(6"반갑습니다.");
            
            int result = pstmt.executeUpdate();
            if(result==1) {
                System.out.println("Board데이터 삽입 성공!");
                
            }
            
        } catch (Exception e) {
            System.out.println("Board데이터 삽입 실패!");
        }    finally {
            try {
                if(pstmt!=null && !pstmt.isClosed()) {
                    pstmt.close();
                }
            } catch (Exception e2) {}
        }
    }
    
    
    //조건에 맞는 행을 db에서 1개 행만 가져오는 메서드
    public void selectOne(int id) {
        String sql = "select * from board where id = ?";
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, id);
            ResultSet rs = pstmt.executeQuery();
            if(rs.next()) {
                System.out.println("id: " + rs.getInt("id"));
                System.out.println("boardTitle: " + rs.getString("boardTitle"));
                System.out.println("boardPassword: " + rs.getString("boardPassword"));
                System.out.println("comboPublic: " + rs.getString("comboPublic"));
                System.out.println("writerName: " + rs.getString("writerName"));
                System.out.println("textContent: " + rs.getString("textContent"));
                
            }
            
            
            
        } catch (Exception e) {
            System.out.println("select 메서드 예외발생");
        }    finally {
            try {
                if(pstmt!=null && !pstmt.isClosed()) {
                    pstmt.close();
                }
            } catch (Exception e2) {}
        }
    }
    
    
//조건에 맞는 행을 DB에서 수정(갱신)    하는 메서드
    public void updateBoard(int id) {
        String sql = "update board set boardPassword =?, writerName =? where id=?";
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1,"7777");
            pstmt.setString(2,"문재인");
            pstmt.setInt(3,id);
            pstmt.executeUpdate();
            System.out.println("수정된 id: " + id);
            
        } catch (Exception e) {
            System.out.println("update 예외 발생");
        }    finally {
            try {
                if(pstmt!=null && !pstmt.isClosed()) {
                    pstmt.close();
                }
            } catch (Exception e2) {}
        }
    }
}
 
cs

 


 

selectOne메서드에서 sql문을 보시면

select*from board where id =?

이렇게 id가 ?인 것을 select한다고 합니다.

그런데 where에 조건이 id말고 다른 조건도 붙었다면

pstmt.setInt(1, id);

이 부분에서

pstmt.setString(2, boardTitle) --> 2번째 ? 에는 매개변수로 받은 boardTitle을 넣겠다.

이렇게 해주시면 되구요

String인 이유는 boardTitle이 String타입이기 때문입니다.

 

 


메인에서는 이렇게 메서드 호출해주면 되구요

아이디1을 select한다는 말입니다.

 

이렇게 나오게 되었습니다.

 

updateBoard()도 호출해보구요

아이디1인 행을 수정하겠다는 말입니다.

여기서도 물론 select * from board;

만 ctrl + shift + 엔터해서 확인해봅니다.

 

 

728x90