꾸준히 안타치기

JDBC 본문

Android _ 서버연동_채팅/Android - study

JDBC

글자줍기 2021. 9. 27. 14:42
반응형

JDBC란? 자바에서 DB를 연결해 사용하기 위해서 필요함

Java Database Connectivity의 약자로써 Java에서 데이터베이스를 접속할 수 있게 해주는 Java API입니다.

JDBC 프로그래밍 코딩 순서

1. JDBC드라이브 로드

2.DB연결

3DB에 데이터를 읽거나 쓰기(SQL문)

4.DB 연결종료

 

JDBC 드라이버

- DBMS 통신을 담당하는 자바 클래스

- DMBS 별로 알맞은 JDBC 드라이버 필요 (jar)

- 로딩코드 : Class.forName(“JDBC드라이버 이름”);

• MySQL : com.mysql.jdbc.Driver

 오라클 : oracle.jdbc.driver.OracleDriver

• MSSQL : com.microsoft.sqlserver.jdbc.SQLServerDriver

 

JDBC URL

- DBMS와의 연결을 위한 식별 

- JDBC 드라이버에 따라 형식이 다름

- 구성 : jdbc:[DBMS]:[데이터베이스식별자]

• MySQL : jdbc:mysql://HOST[:PORT]/DBNAME[?param=value&param1=value2&..]

• Oracle: jdbc:oracle:thin:@HOST:PORT:SID

• MS SQL : jdbc:sqlserver://HOST[:PORT];databaseName=DB

 

DB 연결 생성

 

설치 연동하는 법

https://whitepaek.tistory.com/18

 

JDBC 사용법

insert

import com.mysql.cj.xdevapi.PreparableStatement;

import java.sql.*;

// insert
public class Program2 {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {

        Connection con = null;
        String server = "X.XX.XX.XX"; // MySQL 서버 주소
        String database = "testDB"; // MySQL DATABASE 이름
        String user_name = ""; //  MySQL 서버 아이디
        String password = ""; // MySQL 서버 비밀번호

        // 입력하는 값
        String userID = "JAVASOCKET";
        String postIdx = "11111";

        // insert문 
        String sql = " INSERT INTO bookMark(userID, postIdx) VALUES(?,?)";


        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://" + server + "/" + database + "?useSSL=false", user_name, password);
        System.out.println("정상적으로 연결되었습니다.");

        //Statement st = con.createStatement();
        // select
        // select에만 resultset 이고, insert,update,deletesms에는 executeUpdate()를 사용한다.
        // st.close();

         PreparedStatement st = con.prepareStatement(sql);
         st.setString(1,userID);
         st.setString(2,postIdx);

         int result = st.executeUpdate();
         System.out.println(result);

    }
}

 

select

import java.sql.*;

// select
public class Program {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {

        Connection con = null;

        String server = "X.X.XX.XX"; // MySQL 서버 주소
        String database = "DB"; // MySQL DATABASE 이름
        String user_name = ""; //  MySQL 서버 아이디
        String password = ""; // MySQL 서버 비밀번호


        // 북마크 테이블 조회하기
        String sql = "SELECT* FROM bookMark";

        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://" + server + "/" + database + "?useSSL=false", user_name, password);
        System.out.println("정상적으로 연결되었습니다.");

        Statement st = con.createStatement();
        // select
        // select에만 resultset 이고, insert,update,deletesms Update
        ResultSet rs = st.executeQuery(sql);

        // 다음 내용이 있으면, 모두 조회 반복
        while(rs.next()) {
            String bookIdx = rs.getString("bookIdx");
            String userID =rs.getString("userID");
            String postIdx =rs.getString("postIdx");
            String date = rs.getString("date");
            System.out.printf("bookIdx:%s \n,userID:%s \n,postIdx:%s \n,date:%s \n",bookIdx,userID,postIdx,date);
        }

        rs.close();
        st.close();
    }
}

 

 

 

 

 

 

 

참조자료

https://dyjung.tistory.com/50  

 

뉴렉처

https://youtu.be/deM6MMIwNhg  

https://youtu.be/O8VM271kOlA

 

소켓 + JDBC 

https://blog.daum.net/haha25/5388378

반응형
Comments