[JAVA] Swing 실습하기 - sql 연결

Estar·2024년 7월 18일
0

TIL

목록 보기
11/17
post-thumbnail

SQL 연결하기

우선 Swing라는 GUI에 기반한 프로그램을 만들기 위해서는 DB가 필요하다. 그래서 MySQL 벤치워크에서 Localhost로 연결해주어야 한다.

이런식으로 로컬호스트의 포트와 연결해주는데 3306이 일반적이다.

create database telecomdb;
create user telecomdb@localhost identified by 'telecomdb';
grant all privileges on telecomdb.* to telecomdb@localhost;
commit;
USE telecomdb;
CREATE TABLE Customer (
  CustomerId		INTEGER PRIMARY KEY,
  CustomerName	VARCHAR(40),
  Year	INTEGER,
  Grade		VARCHAR(40)
);
CREATE TABLE  Telecom (
  id		INTEGER PRIMARY KEY,
  name		VARCHAR(40)
);
CREATE TABLE Grade (
  Id INTEGER PRIMARY KEY,
  Name VARCHAR(45),
  Discountrate DECIMAL(5, 2)
);
INSERT INTO Customer (CustomerId, CustomerName, Year, Grade) VALUES
(1, '김서준', 25, 'VIP'),
(2, '이하린', 30, 'VVIP'),
(3, '박지후', 35, '다이아몬드'),
(4, '최지호', 28, '골드'),
(5, '강예준', 32, '일반'),
(6, '윤서준', 27, 'VIP'),
(7, '홍서진', 33, 'VVIP'),
(8, '정민준', 31, '다이아몬드'),
(9, '서유진', 29, '골드'),
(10, '안도현', 26, '일반'),
(11, '백서연', 34, 'VIP'),
(12, '신하윤', 30, 'VVIP'),
(13, '황지민', 35, '다이아몬드'),
(14, '임예린', 28, '골드'),
(15, '조민지', 32, '일반');
INSERT INTO Telecom (id, name) VALUES
(1, 'LG U+'),
(2, 'KT'),
(3, 'SK Telecom'),
(4, 'SK Broadband'),
(5, 'KT Skylife'),
(6, 'SK텔링크'),
(7, '헬로모바일'),
(8, '토스모바일'),
(9, '스테이지파이브'),
(10, '미디어로그');
INSERT INTO Grade (Id, Name, Discountrate) VALUES
(1, 'VVIP', 25.00),
(2, 'VIP', 20.00),
(3, '다이아몬드', 15.00),
(4, '골드', 10.00),
(5, '일반', 5.00);

이렇게 테이블 3개 Customer, Telecom, Grade를 만들고 이를 인텔리제이에서 구현해보고자 한다.

package app.telecom.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// Connection 객체를 생성, 전달
// ResultSet, PreparedStatement, Connection 객체 종료 close()
public class DBManager {
    static String url = "jdbc:mysql://localhost:3307/telecomdb";
    static String user = "root";
    static String pwd = "11111111";

    public static Connection getConnection() {
        Connection con = null;
        try {
            con = DriverManager.getConnection(url, user, pwd);
        }catch(SQLException e) {
            e.printStackTrace();
        }

        return con;
    }

    public static void releaseConnection(PreparedStatement pstmt, Connection con) {
        try {
            pstmt.close();
            con.close();
        }catch(SQLException e) {
            e.printStackTrace();
        }
    }

    public static void releaseConnection(ResultSet rs, PreparedStatement pstmt, Connection con) {
        try {
            rs.close();
            pstmt.close();
            con.close();
        }catch(SQLException e) {
            e.printStackTrace();
        }
    }
}

이런식으로 만들면 인텔리제이에 데이터를 인풋할 수 있다.

profile
개발자를 꿈꿔요

0개의 댓글

관련 채용 정보