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
https://learn.microsoft.com/ko-kr/sql/connect/jdbc/working-with-a-connection?view=sql-server-ver16
728x90
반응형
'🛠️Backend > JAVA' 카테고리의 다른 글
[Java] Netty를 사용하여 간단한 Echo 서버 및 클라이언트 구현 (1) | 2024.07.24 |
---|
댓글