eajni IT ์ดˆ๋ณด์‚ฌ์ „ ๐Ÿ’ฆ๐Ÿ’ฆ

[Spring] JDBC

2022-11-27

JDBC

Java DataBase Connectivity Java์—์„œ Database๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” API

JDBC ๋“œ๋ผ์ด๋ฒ„ ์—ฐ๊ฒฐ ๊ณผ์ •

์ปค๋„ฅํ„ฐ ํŒŒ์ผ ์„ค์น˜

  1. C:\Program Files\Java\jre1.8.0_101\lib\ext ๊ฒฝ๋กœ์— .jarํŒŒ์ผ ๋ถ™์—ฌ๋„ฃ๊ธฐ
  2. ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญย โ‡’ย properties โ‡’ย Java Build Path โ‡’ ์ƒ๋‹จ ๋ฉ”๋‰ด Libraries ์„ ํƒ โ‡’ย Add Libraryโ‡’ User Library โ‡’ย User Libraries โ‡’ย Newโ‡’ ์ด๋ฆ„ ์ž…๋ ฅ(jdbc๋กœ ์„ค์ •) โ‡’ย User Libraries โ‡’Add External JARsโ€ฆ โ‡’ .jar ํŒŒ์ผ ์„ ํƒ โ‡’Apply and Close โ‡’ Finish

์†Œ์Šค์ฝ”๋“œ ์ž…๋ ฅ (Importํ•œ Driver ํŒŒ์ผ์„ย ๊ฐ์ฒดํ™”ํ•˜๋Š” ๊ณผ์ •)

1. DB Driver ๋กœ๋“œ

String driver = "com.mysql.cj.jdbc.Driver";

Class.forName(driver);
  • MySQL : com.mysql.cj.jdbc.Driver
  • Oracle : oracle.jdbc.driver.OracleDriver
  • MSSQL : com.microsoft.sqlserver.jdbc.SQLSeverDriver

2. ๋กœ๊ทธ์ธ ์ •๋ณด ์ž…๋ ฅ

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class DBConnection 
{
    public static Connection dbConn;
    
        public static Connection getConnection()
        {
            Connection conn = null;
            try {
                String user = "scott"; 
                String pw = "tiger";
                String url = "jdbc:oracle:thin:@localhost:1521:orcl";
                
                Class.forName("oracle.jdbc.driver.OracleDriver");        
                conn = DriverManager.getConnection(url, user, pw);
                
                System.out.println("Database์— ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.\\n");
                
            } catch (ClassNotFoundException cnfe) {
                System.out.println("DB ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ ์‹คํŒจ :"+cnfe.toString());
            } catch (SQLException sqle) {
                System.out.println("DB ์ ‘์†์‹คํŒจ : "+sqle.toString());
            } catch (Exception e) {
                System.out.println("Unkonwn error");
                e.printStackTrace();
            }
            return conn;     
        }
}

๐Ÿ“Œ DB ์ฃผ์†Œ ๊ตฌ์กฐ

DB IP์ฃผ์†Œ ํฌํŠธ DB๋ช…
jdbc:oracle:thin: @localhost: 1521: orcl

3. ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
 
public class OracleTest 
{
    public static void main(String args[])
    {
        Connection conn = null; // DB์—ฐ๊ฒฐ๋œ ์ƒํƒœ(์„ธ์…˜)์„ ๋‹ด์€ ๊ฐ์ฒด
        PreparedStatement pstm = null;  // SQL ๋ฌธ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด
        ResultSet rs = null;  // ์ฟผ๋ฆฌ๋ฌธ์„ ๋‚ ๋ฆฐ๊ฒƒ์— ๋Œ€ํ•œ ๋ฐ˜ํ™˜๊ฐ’์„ ๋‹ด์„ ๊ฐ์ฒด
        
        try {
            // SQL ๋ฌธ์žฅ์„ ๋งŒ๋“ค๊ณ  ๋งŒ์•ฝ ๋ฌธ์žฅ์ด ์งˆ์˜์–ด(SELECT๋ฌธ)๋ผ๋ฉด
            // ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์„ ResulSet ๊ฐ์ฒด๋ฅผ ์ค€๋น„ํ•œ ํ›„ ์‹คํ–‰์‹œํ‚จ๋‹ค.
            String quary = "SELECT * FROM EMP";
            
            conn = DBConnection.getConnection();
            pstm = conn.prepareStatement(quary);
            rs = pstm.executeQuery();
            
            /*  EMP ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…
             * 
                EMPNO NOT NULL NUMBER(4) -- int
                ENAME VARCHAR2(10) -- String
                JOB VARCHAR2(9) -- String
                MGR NUMBER(4) -- int
                HIREDATE DATE -- Date
                SAL NUMBER(7,2) -- float/double
                COMM NUMBER(7,2) -- float/double
                DEPTNO NUMBER(2) -- int
            */
            
            System.out.println("EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO");
            System.out.println("============================================");
            
            while(rs.next()){     //๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
                int empno = rs.getInt(1);
                //int empno = rs.getInt("empno"); ์ˆซ์ž ๋Œ€์‹  ์ปฌ๋Ÿผ ์ด๋ฆ„์„ ์ ์–ด๋„ ๋œ๋‹ค.
                String ename = rs.getString(2);
                String job = rs.getString(3);
                int mgr = rs.getInt(4);
                java.sql.Date hiredate = rs.getDate(5); // Date ํƒ€์ž… ์ฒ˜๋ฆฌ
                int sal = rs.getInt(6);
                int comm = rs.getInt(7);
                int deptno = rs.getInt(8);
                
                String result = empno+" "+ename+" "+job+" "+mgr+" "+hiredate+" "+sal+" "+comm+" "+deptno;
                System.out.println(result);
            }
            
        } catch (SQLException sqle) {
            System.out.println("SELECT๋ฌธ์—์„œ ์˜ˆ์™ธ ๋ฐœ์ƒ");
            sqle.printStackTrace();
            
        }finally{
            // DB ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค.
            try{
                if ( rs != null ){rs.close();}   
                if ( pstm != null ){pstm.close();}   
                if ( conn != null ){conn.close(); }
            }catch(Exception e){
                throw new RuntimeException(e.getMessage());
            }
            
        }
    }
}

Comments

Content