JDBC를 사용한 MS SQL 연동

미려김·2024년 2월 14일

JSP 프로그래밍

목록 보기
2/14
post-thumbnail
  • JSP를 사용해 개발한 웹 어플리케이션이 DB를 사용해 데이터를 관리하기 위해서는
      1. 먼저 DB 연결 2. 적절한 SQL 질의 사용 -> 데이터 저장/수정/삭제

  • 개발하는 언어나 환겨엥 따라 DB에 연결하기 위한 다양한 방법 존재
    • JSP와 같이 Java를 기반으로 한 언어 : JDBC 사용

  • JDBC; Java DataBase Connectivity : DB 연결 커넥터(Connector)
    • Java를 이용한 DB 접속 / SQL 질의 문장의 실행 / 그 결과 얻어진 데이터 처리하는 방법절차에 대한 규약


  • JSP 개발 환경의 구성 파트

    • Java SE, Tomcat, 이클립스, MSSQL 설치함
    • Java 환경변수 설정, 이클립스와 Tomcat 연동 미리 해둠
    • 2014년도에 나온 책이라 그냥 다른 블로그 참고에서 하나 하나 설치함
    • 따라서 JDBC 설치방법은 다른 블로그 글을 참고할 것
    • 이 글에서는 설치하면서 겪었던 에러를 정리할 예정

  • 연동 url 작성 법
    https://learn.microsoft.com/ko-kr/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver16

  • Error1. JDBC 연동이 안됨

    • src > main > java > webapp> lib > 여기에 .jar 파일 넣으니까 유의미한 변화 생김 → 연결 됨
    • 이전까진 프로젝트 우클릭 → Properties? → Build Path에서 추가만 했는데 HTTP 5000 에러 생김
    • JDBC랑 MS SQL 연동 참고 블로그 : https://2minmin2.tistory.com/55

  • Error2. JDBC 연동은 되는데 DB 연결이 걍 안돼!!! 난 실패작이야ㅠㅜ

    • DB 연결이 되면 -> 성공, X-> 실패작으로 조건문 걸었는데 자꾸 실패작만 나옴.....
    • 이유 : String jdbcUrl을 잘못 적어서 DB 연결이 안 됨
    • String jdbcUrl = "jdbc:sqlserver://(host):(port);encrypt=false;DatabaseName=(DB이름);"; 코드 이렇게 수정했더니 DB 연결됨
      • 참고한 모든 사이트에서 host에 (localhost:) 이렇게 적혀있어서 jdbc:sqlserver://localhost:123.456.789.101 이렇게 적는줄 알았음..그치만 아니였죠?
      • jdbc:sqlserver://123.456.789.101 이렇게 적어주는게 맞음
      • port 번호도 SQL Server 구성관리자 참고하라는 글이 많았는데, 나 같은 경우는 학교 DB에 연결하는거라 그런지 몰라도 그냥 선배한테 받은 연결 port 번호 넣으니까 연결되었음!
      • ex. jdbc:sqlserver://localhost:123.456.789.101:00000
  • Error3. SunCertPathBuilderException 에러

  • 전체 코드

    	``` javascript
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.sql.SQLException" %>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>DB Connect EX</title>
    </head>
    <body>
    <%
    
    Connection conn = null;
    
    try{	
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
    
        String jdbcUrl = "jdbc:sqlserver://(연결할 서버 IP, ex:123.456.789.101):(port);encrypt=false;DatabaseName=(DB이름);";
        String jdbcId = "아이디";
        String jdbcPw = "비밀번호";
    
        conn = DriverManager.getConnection(jdbcUrl, jdbcId, jdbcPw);
    
        out.println("연결 성공");
    } catch(SQLException e){
        out.println("난 실패작이야ㅠ");
        e.printStackTrace();
        } finally {
            // close() 호출 전에 conn이 null이 아닌지 확인
            if (conn != null) {
                conn.close();
            }
        }
    
    %>
    </body>
    </html>

  • 사담

주임님이 이론 건너뛰고 코드 타이핑하면서 공부하라고 하셔 설치부터 시작~
JDBC 연동만 6시간 걸려서 진짜 울고싶었음...왜 죄다 MySQL이랑만 연결하는건데...
그래도 얼레벌레 성공해서 기분 좋음 ㅎㅎㅎ 9시에 출근해서 오후4시쯤에나 겨우 성공했지만
어쨌든 성공하면 그만이죠ㅎㅎㅎ^^!!

작품명 : It dosen't work.... why? It works........... why?

갑자기 작동되는 내 코드진짜 뭐가 문제였던거지
profile
안녕하세요.

0개의 댓글