ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JDBC를 이용해서 쿼리 입력하는 코드
    JDBC 2022. 2. 3. 16:46

    **유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.

     

    저번에 이클립스에서 SELECT 할 때 사용했던 클래스를 이용해서 입력해보도록 하자

     

    지난번에 사용했던 program.java 파일을 복사해서 program2.java 파일을 생성 해 준다.


    ResultSet rs = st.executeQuery(sql); insert/update/delete에는 사용 하지 않기 때문에 지워주고 

    String sql문에는 지난번에 만들었던 insert문을 복사해서 붙여넣기 해 준다. 복사 해 올 때 세미콜론은 지워줘야한다.

    아마 그래도 복사 붙여넣기 하면 \r\n이 적혀 있을것이다. 이거는 ctrl+f 해서 전부 지워주도록 한다. replace부분은 공백으로 두고 replace/find 버튼 클릭

    	public static void main(String[] args) throws ClassNotFoundException, SQLException {
    		
    		String url = "jdbc:oracle:thin:@localhost:1521/xepdb1";
    		String sql = "INSERT INTO notice ("
    				+ "    title,"
    				+ "    writer_id,"
    				+ "    content,"
    				+ "    files"
    				+ ") VALUES ("
    				+ "    'TESTTITLE',"
    				+ "    'BANDAL',"
    				+ "    'TEST CONTENT',"
    				+ "    'FILE_01'"
    				+ ")";
    		
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		Connection con = DriverManager.getConnection(url,"sys as sysdba", "Ew170916!!");
    		Statement st = con. createStatement();
    		//ResultSet rs = st.executeQuery(sql); insert/update/delete에는 사용 하지 않는다.
    		
    		st.close();
    		con.close();
    	}
    
    }

     

    그럼 이렇게 깔끔하게 지워진 것을 확인 할 수 있다. 

     

    사용자 값을 받아와서 넣으려면 변수가 필요하기 때문에 위에다가 변수를 선언 해 준다. 

     

    문제는 이제 이 변수를 꽂아 넣을거면 문자열을 잘라서 이어붙이기 작업이 필요하게 된다.

    "'+title+"',"+

    이런식으로 원래 데이터 모양으로 온전히 꽂힐 수 있도록 작성해줘야하는데 복잡하고 실수 할 경우도 많이 생긴다.

    이 문제를 도와 줄 jdbc 실행자가 있다.Statement를 사용해서 데이터를 바로 꽂아 줄 수 있는 도구가 있다.

     

    우선 값 입력 부분을 지워주고 넣고자 하는 컬럼 수 많큼 물음표로 채워준다.+ ") VALUES (?,?,?,?)";

    그런 다음 prepareStatement를 통해서 미리 쿼리문을 다 채워주고 실행만 할 수 있게 해준다.

     

    PreparedStatement st = con.prepareStatement(sql);

    그런 다음 st에 set으로 담아주면 된다.

    st.setString(1, title);
    st.setString(2, writerId);
    st.setString(3, content);
    st.setString(4, files);

    set뒤에는 사용해야 할 데이터 타입을 작성해주고 뒤에 숫자는 인덱스 번호인데 일반적인 인덱스는 0번부터 시작이지만 이건 1번부터 시작이다. 뒤에는 담아야 할 컬럼명을 작성 해 준다. 

     

    그런 다음

    st.executeUpdate();

    코드를 작성 해 주고 실핼 시켜준다. 

     

    그리고 insert가 제대로 된다면 콘솔창에 1이라는 값이 뜰 것이다. 그럼 그 결과값을 int로 담아줘야한다,

    int result = st.executeUpdate();

     

    1개의 컬럼이 추가 된 것을 확인 할 수 있다. 

    sql developer에서도 확인 해보자.

    값이 잘 들어온것을 확인 할 수 있다.

    'JDBC' 카테고리의 다른 글

    JDBC 데이터 삭제하기  (0) 2022.02.03
    JDBC 데이터 수정하기  (0) 2022.02.03
    JDBC 데이터 입력 쿼리문 작성 하기  (0) 2022.02.03
    JDBC 조건을 추가하여 출력하기  (0) 2022.01.31
    레코드의 모든 컬럼 출력하기  (0) 2022.01.31
Designed by Tistory.