본문 바로가기
사이드 프로젝트/게시판

2. Spring boot + MSSQL

by 나는 유찌 2020. 9. 27.

 

< 이전글 >

2020/09/12 - [사이드 프로젝트/게시판] - 1. Spring boot 프로젝트 생성

 

1. Spring boot 프로젝트 생성

* 이클립스 마켓플레이스에서 spring을 설치 또는 아래의 주소에서 Spring Tool Suite를 먼저 설치한 후 진행하도록 합니다. https://spring.io/tools Spring Tools 4 is the next generation of Spring tooling L..

dev-yujji.tistory.com

 

 

 

프로젝트를 생성하고 나면 이것저것 설정을 하게 되는데 그 중 데이터베이스 연동을 해보겠다.

최근 회사에서 MSSQL만 사용했더니 해당 문법이 가장 익숙해서 나는 MSSQL로 작업하기로 했다.

 

 

Microsoft SQL Server Management Studio, SQL Server구성관리자 사전작업


우선 MSSQL 연동 코드를 작성하기 전에 먼저 작업해야 하는 것이 있다.

DB에 접근이 되도록 설정을 해줘야 프로젝트 실행 시 Console에서 로그인이 되지 않는다는 에러를 보지않고 진행할 수 있다.

 

먼저 Management Studio를 열면 개체 탐색기 연결 화면이 나오게 되는데 여기서 설치 후 변경없이 그대로 진행했다면 'Windows 인증'에서 연결을 하게된다. 이런식으로 하면 JDBC에서는 접속을 할 수 없게 되므로 'SQL Server 인증'으로 바꿔주어야 한다.

 

개체 탐색기 항목에서 마우스 오른쪽을 누른 후 가장 아래 '속성' 버튼을 누른다.

 

 

여기서 '보안' 메뉴를 누르고 '서버 인증'에서 'SQL Server 및 Windows 인증 모드'로 체크를 해준다.

 

TCP/IP 사용은 'MSSQLSERVER에 대한 프로토콜' 메뉴에서

 

그 다음으로 SQL Server 관리자를 열고 'TCP/IP' 상태를 사용으로 바꾼다.

 

재시작은 'SQL Server 서비스' 메뉴에서

가장 상단의 'SQL Server'를 클릭하고 마우스 오른쪽을 눌러 재시작 버튼을 눌러준다.

 

 

 

코드 작성


DB에 접근이 가능하게 작업을 해놓았으면 이제 코드를 작성할 차례다.

 

먼저 pom.xml 파일에 dependency를 추가한다.

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>

<dependency>
	<groupId>com.microsoft.sqlserver</groupId>
	<artifactId>mssql-jdbc</artifactId>
	<scope>runtime</scope>
</dependency>

 

spring-boot-starter-data-jdbc : 굳이 없어도 에러는 나지 않는다. 다만 HikariCP라는 DBCP(DataBase Connection Pool)가 해당 Dependency에 들어가있어 매우 중요하다. DBCP는 중요하고 기본이다. 없어도 에러는 안나지만 꼭 필요하다.

 

mssql-jdbc : 이름에서부터가 무엇인지 감이 올거다. MSSQL 데이터베이스를 연동하게 해주는 Dependency이다.

 

 

 

그 다음 application.properties 파일에 다음과 같이 DB 정보를 입력해준다.

spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=데이터베이스이름
spring.datasource.username=사용자이름
spring.datasource.password=비밀번호

나중에 SQL 로그 설정을 하면서 약간 변경을 하게 될테지만 기본은 이러하다.

 

 

 

마지막으로 테스트 코드를 작성하여 데이터베이스 연동이 잘 되는지 확인을 한다.

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class DbTest {

	@Autowired
	DataSource dataSource;
	
	@Test
	public void connection() throws SQLException {
		try(Connection connection = dataSource.getConnection()) {
			DatabaseMetaData metaData = connection.getMetaData();
			log.info("URL : " + metaData.getURL());
			log.info("DriverName : " + metaData.getDriverName());
			log.info("UserNmae : " + metaData.getUserName());
		}
	}
}

다음과 같이 테스트 코드를 작성하고 실행해본다.

 

URL : jdbc:sqlserver://localhost\Community_board?serverTimezone=UTC&characterEncoding=UTF-8:1433;useFmtOnly=false;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;trustStoreType=JKS;trustServerCertificate=false;TransparentNetworkIPResolution=true;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=30;lockTimeout=-1;lastUpdateCount=true;encrypt=false;disableStatementPooling=true;columnEncryptionSetting=Disabled;applicationName=Microsoft JDBC Driver for SQL Server;applicationIntent=readwrite;
DriverName : Microsoft JDBC Driver 7.4 for SQL Server
UserNmae : admin

 

콘솔에 다음과 같이 나오면 DB가 잘 연동된 것을 확인할 수 있다.

 

참고로 테스트 코드는 다음과 같은 경로에서 이루어진다.

test.java.com.example.

 

'사이드 프로젝트 > 게시판' 카테고리의 다른 글

5. Controller에서 alert 띄우기, 화면 이동하기  (2) 2020.10.05
4. Logback 설정  (0) 2020.09.27
3. MyBatis 설정  (0) 2020.09.27
1. Spring boot 프로젝트 생성  (0) 2020.09.12