🛠️Backend/JAVA

[Java] 순수 자바 프로젝트에서 MS-SQL 연결하기

뉴발자 2024. 7. 17.
728x90
반응형

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

개요

새 프로젝트를 하면서 Spring Boot를 사용하지 않고 프로젝트를 진행하게 됐다.

 

Spring Boot를 사용하지 않은 이유는 단순히 TCP/IP 통신 및 DB 만을 사용하는 프로그램에서

 

굳이 무거운 Spring Boot를 사용하지 않아도 된다고 판단했기 때문이다.

 

많은 래퍼런스가 없었기에 진행하면서 적용한 코드를 정리해보려고 한다.

 

 

gradle 의존성 추가

mssql을 사용하기 위해서 build.gradle 파일에 의존성을 추가했다.

implementation 'com.microsoft.sqlserver:mssql-jdbc'

 

하지만 정상적으로 빌드되지 않았고, jre 버전과 맞는 버전을 추가해주니 정상적으로 의존성이 추가됐다.

implementation 'com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17'

 

아래 사이트에서 jdk 버전에 맞게 라이브러리를 추가해주면 된다.

https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc

 

 

코드

public void selectAllFromTest() {
    try {
        // SQL 쿼리 문자열
        String query = "SELECT * FROM test WHERE id=? AND name=?";

        // Connection을 사용해서 DB에 접근한다.
        // URL - SQL 서버 주소 (ex. localhost:1933)
        // DB - SQL 서버의 DB명
        // USERNAME - 서버 접속 사용자명
        // PASSWORD - 서버 접속 비밀번호
        Connection con = DriverManager.getConnection(
            "jdbc:sqlserver://[URL];databaseName=[DB];encrypt=false", [USERNAME], [PASSWORD]
        );

        // PreparedStatement - 기존 Statement보다 향상된 성능을 가진 함수
        // 데이터 값을 직접 작성하는 것이 아닌 "?"를 사용해서 데이터를 전달
        PreparedStatement ps = con.prepareStatement(query);

        // 전달할 데이터를 순서대로 넣어준다.
        // 전달할 데이터의 타입에 맞춰서 set타입을 사용해준다.
        ps.setInt(1, 1);
        ps.setString(2, "홍길동");

        // executeQuery() 함수로 실행한 결과 값을 ResultSet 객체로 받아온다.
        ResultSet rs = ps.executeQuery();

        // 결과값의 사이즈 만큼 반복해서 출력한다.
        while(rs.next()) {
            // 특정 컬럼이 출력되기를 원한다면 rs.getString("컬럼명")을 사용하면 된다.
            System.out.println("id: " + rs.getInt(1) + ", name: " + rs.getString(2));
        }

        // 모든 통신 연결 종료
        ps.close();
        con.close();
    } catch (SQLException | ClassNotFoundException e) {
        throw new RuntimeException(e);
    }
}

 

 

참고 사이트

https://aricode.tistory.com/12

 

[JDBC] PreparedStatement를 이용해 동적으로 SQL 처리하기

이번 주제에서 알아볼 것은 Java에서 동적으로 SQL을 처리하는 방법을 알아보겠습니다. 일단 PreparedStatement(java.sql.PreparedStatement)는 Statement 보다 향상된 기능을 가지고 있습니다. 주요 특징 - 인자값

aricode.tistory.com

 

https://learn.microsoft.com/ko-kr/sql/connect/jdbc/working-with-a-connection?view=sql-server-ver16

 

JDBC 연결 작업 - JDBC Driver for SQL Server

Microsoft JDBC Driver for SQL Server의 SQLServerConnection 클래스를 사용하여 SQL Server 데이터베이스에 연결하는 다양한 방법의 예입니다.

learn.microsoft.com

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글