'Spring Boot'에 해당하는 글 3건

application.properties 기존 H2 DB 연결 정보 >> postgreSQL


#postgreSQL

spring.datasource.url=jdbc:postgresql://{url}:{port}/{sid}

spring.datasource.driverClassName=org.postgresql.Driver

spring.datasource.username={username}

spring.datasource.password={password}

spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect



MyBatis 연동


1. sqlSession과 Mapper 연동을 위해 Application.java에 빈을 등록

@Bean

public SqlSessionFactory sqlSessionFactory(DataSource ds) throws Exception {

    SqlSessionFactoryBean factory = new SqlSessionFactoryBean();

    factory.setDataSource(ds);

    factory.setMapperLocations(

        new PathMatchingResourcePatternResolver().getResources("classpath:/mappers/*_SQL.xml") // A

    );

    return factory.getObject();

}


@Bean

public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory factory) {

    return new SqlSessionTemplate(factory);

}




2. Mapper interface 생성


package com.jt.lotto.mapper;


import org.apache.ibatis.annotations.Mapper;


@Mapper

public interface LottoMapper {


public List<Map<String, String>> findAll();


}




2. A 경로에 SQL 등록

/resources/mappers/Lotto_SQL.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.jt.lotto.mapper.LottoMapper">


    <select id="findAll" resultType="HashMap">

            select * from lotto

    </select>


</mapper>




3. 사용

@resource

public LottoMapper mapper;


public void test() {

Object result = mapper.findAll();

}


참 쉽죠?

문득 설정하다보니 mapper와 dao의 궁극적인 차이가 뭔지 싶다.

일하면서는 단순히 dao 쪽이 코딩할 게 (대체로 보일러플레이트 코드) 많아 번거로운 정도로만 인식했는데

dao는 어쨌든 개발자가 의도적으로 sql 실행을 위한 sqlSession 생성 시점에 접근할 수 있으니 

사용 목적은 같더라도 어떤 시점에서는 구분해서 사용해야 하는 게 아닐까 하는 생각도 들고. 







참고 URL: http://iotsw.tistory.com/77









'Spring Boot' 카테고리의 다른 글

Spring Boot 웹페이지 만들기 & H2 DB 연결  (1) 2017.08.05
Spring Boot 시작하기  (0) 2017.08.05

WRITTEN BY
Project JT
2명의 개발자가 팀 프로젝트를하며 사용한 기술들을 남기는 팀 블로그입니다.

,

일단 웹페이지 요청을 처리하는 컨트롤러를 만들어보자.

hello, world!는 어디서나 튜토리얼의 기본이니까.


1. HelloWorldController 작성



늘 spring mvc로 개발을 해서 잠시 헤맨 부분은 @RestController 부분.

습관처럼 @Controller 를 사용하고서 404 에러가 떠서 오잉?? 하고 있었다.

알아보니 @RestController가 @Controller + @ResponseBody 의 역할을 한다고 한다.

실제로 @RestController 대신 @Controller @ResponseBody 를 연달아 사용하면 똑같이 작동한다.


2. 실행 후 접속




이렇게 뜨는 걸 확인할 수 있다.

포트는 기본값이 8080이며 변경하고 싶다면 resource 아래 위치한 

application.properties에 >> server.port=포트번호 << 를 추가하면 된다. 


3. 연달아서 h2 설정

페이지에 접근이 되었으니 이제 값을 저장할 서버를 연결해야 한다.

나는 최종적으로는 postgreSQL을 사용할 예정이지만 서버가 마련되기 전에 

해당 프로젝트를 세팅했던 터라 일단 가장 기본적인 H2로 시작했다.

연결은 후에 바꾸면 되니까.

H2를 쓰기 위해서는 두 가지 설정이 필요하다.


첫 번째는 H2 연결 설정을 위해 조금 전 포트 번호를 설정한 application.properties에 아래 설정을 추가


spring.datasource.url=jdbc:h2:~/test

spring.datasource.driverClassName=org.h2.Driver

spring.datasource.username=sa

spring.datasource.password=

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect


가장 기본적인 H2 설정이다. 

내가 알아볼 때 찾은 페이지에서는 Spring Boot의 기본값이 H2이기 때문에

H2를 이용하는 경우는 별도의 설정이 필요없다고 했었지만 나는 설정을 해야만 했다.

안 쓰니까 이용이 안 되더라고🤔  

뭐가 문제였는지는 모르겠지만 일단 설정을 추가해주는 걸로 해결을 봤다.

어차피 후에 postgreSQL로 바꾸려면 설정을 해야 하는 입장이기도 하고.


두 번째는 H2 데이터베이스 콘솔에 붙기 위한 설정

아래와 같이 설정 파일을 추가한다.



이걸로 H2 데이터베이스를 이용할 준비가 끝이 난다. 

서버를 실행해서 http://localhost:8080/console/에 접근해보자.


이렇게 데이터베이스도 연결되었다.








'Spring Boot' 카테고리의 다른 글

postgreSQL 연동 및 MyBatis 적용  (0) 2018.01.03
Spring Boot 시작하기  (0) 2017.08.05

WRITTEN BY
Project JT
2명의 개발자가 팀 프로젝트를하며 사용한 기술들을 남기는 팀 블로그입니다.

,

아주 단순하게 url을 통해 db에 값을 저장하는 프로젝트를 만들어보자.

맥북에서 진행합니다.


1. sts 다운로드 (https://spring.io/tools/sts/all)

내가 사용한 버전은 아래와 같다.


Spring Tool Suite 


Version: 3.9.0.RELEASE

Build Id: 201707061823

Platform: Eclipse Oxygen (4.7.0)


2. spring starter project를 생성

Service URL은 건드리지 말고 Name에 프로젝트명을 세팅한다.




3. 필요한 디펜던시를 선택하고 finish를 클릭

나는 url 호출을 통해 값을 저장하고 값을 가져오는 정도를 구현할 예정이라 몇 가지만 선택했다.



4. 프로젝트를 실행

Run As > Spring Boot App 또는 SampleApplication.java 파일을 Run As > Java Application



실행이 된 걸 볼 수 있다. 



처음에 스타터 프로젝트를 생성하고 에러가 난다면 당황하지 말고 조금 기다려 보자.

처음 프로젝트를 생성할 때 본 Service Url을 통해 필요한 파일 등을 받아오는 것 같은데 약간 시간이 걸릴 때가 있는 듯하다.

(따로 Progress에 출력되지도 않음)


나 같은 경우는 당황해서 maven프로젝트로 전환했더니 그 순간 설정이 끝났는지 프로젝트에서 에러가 사라졌다.

카페 와이파이로 해서 그런가🤔




'Spring Boot' 카테고리의 다른 글

postgreSQL 연동 및 MyBatis 적용  (0) 2018.01.03
Spring Boot 웹페이지 만들기 & H2 DB 연결  (1) 2017.08.05

WRITTEN BY
Project JT
2명의 개발자가 팀 프로젝트를하며 사용한 기술들을 남기는 팀 블로그입니다.

,