Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

20Jayden/Spring-restapi-starter-v1.0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

12 Commits

Repository files navigation

SpringBoot(SpringMVC) RestAPI CRUD + DB(PostgreSQL)

SpringBoot RestAPI Starter 목적으로 만든 프로젝트이며, Mybatis로 DB(PostgreSQL)와 연결하여 RestAPI를 구현했습니다.


1. 시작 전

1.1 테이블 생성

CREATE TABLE tb_user(
user_id varchar(30) NOT NULL PRIMARY KEY,
user_nm varchar(20),
email varchar(50),
reg_dt date,
updt_dt date
)

1.2 데이터 등록

INSERT INTO tb_user (user_id, user_nm, email, reg_dt, updt_dt) 
VALUES ('github_name', 'name', 'github_name@github.com', now(), now());

2. Start

2.1 application.properties 수정

로컬 환경에 맞게 설정 값을 입력합니다.

# Server 포트 지정
server.port=8080
# database (postgres) 정보입력
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://(IP주소):(포트)/(DB명)
spring.datasource.username=DB 유저명
spring.datasource.password=DB 패스워드
# XML location (mapper 파일 위치 지정)
mybatis.mapper-locations=classpath:mapper/*.xml
# Swagger 설정
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
# Exception Handler 설정
spring.mvc.throw-exception-if-no-handler-found=true
spring.web.resources.add-mappings=false
# Encoding UTF-8
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.force=true

2.2 패키지 구조 확인

com
 ᄂ example
 ᄂ restapi
 ᄂ common
 | ᄂ ExceptionController.java
 ᄂ config
 | ᄂ SwaggerConfig.java
 | ᄂ WebConfig.java
 ᄂ controller
 | ᄂ RestApiController.java
 ᄂ mapper
 | ᄂ RestApiMapper.java
 ᄂ service
 | ᄂ RestApiService.java
 | ᄂ RestApiServiceImpl.java
 ᄂ vo
 ᄂ UserVO.java

해당 프로젝트는 User를 예시로 구현되어 UserVO를 사용합니다.




3. 기타(etc)

3.1 VO 생성 쿼리(PostgreSQL)

SELECT
	'private ' ||
	CASE
		WHEN DATA_TYPE = 'character varying' THEN 'String'
		WHEN DATA_TYPE = 'numeric' THEN 'float'
		WHEN DATA_TYPE = 'integer' THEN 'int'
	END 
	|| ' ' || LOWER(COLUMN_NAME) || ';'
FROM
	INFORMATION_SCHEMA.COLUMNS
WHERE
	TABLE_CATALOG = 'DB명'
	AND TABLE_NAME = '테이블명'
	AND table_schema = '스키마명'
ORDER BY
	ORDINAL_POSITION;

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /