개요
새 프로젝트를 하면서 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
'🛠️Backend > JAVA' 카테고리의 다른 글
[Java] Netty를 사용하여 간단한 Echo 서버 및 클라이언트 구현 (1) | 2024.07.24 |
---|
댓글