※ RDS사용시 MySQL 한글로 설정 https://pangyeon.tistory.com/9?category=682580


Spring Boot에서 데이터베이스가 UTF8로 설정 되어있음에도 불구하고 물음표(?)로 값이 들어갈 때가 있다.

이 경우 application.propertise에서 mysql 주소뒤에 

주소/테이블명/?useUnicode=true&characterEncoding=utf8


이렇게 붙여주면 데이터 입력시 한글로 잘 들어간다.


MySQL 작업시

default CURRENT_TIMESTAMP 을 해놓아도 안될 때가 있다. (기본적으로 not null로 설정 안되어 있으면 먹지 않음)

위 작업할 때 not null은 기본적으로 설정 해 주어야 하는데, 갑자기 default 값이 먹지 않고 값이 not null 이여아 한다는 오류가 뜰때가 있다.

이 경우 MySQL 쿼리로


SET explicit_defaults_for_timestamp=0


을 날려주면 된다.


※ 특히 Amazon RDS 기본 값은 SET explicit_defaults_for_timestamp=1 이기 때문에 필히 RDS 관리 홈페이지에서 파라미터 그룹을 생성하면 된다.


※ MySQL 8.0 부터 deprecated 되어 안된다. 현재 자신이 사용하는 프로젝트(프로그램 및 언어)에서 만약 Date의 DataType이 String으로 되어있다면 DataType을 Date형식으로 바꾸어야 함.


Spring boot JPA EntityManager를 이용한 Map형식으로 mapping하는 방법이다.

JPA ORM방식으로는 https://pangyeon.tistory.com/4?category=682580 여기에 있다.


JPA ORM 방식으로 하는 방법은 여기에 있다.

1. 2018/10/24 - [Spring Boot] - Spring boot jpa map, hashmap, JSON형식



Spring Boot Json익히기

Spring boot Json 1편, 2편, 3편, 4편, 마지막

1. 2018/11/06 - [Develop/Spring Boot] - Spring Boot Json, JsonObject로 만들기 - JSON 1편

2. 2018/11/07 - [Develop/Spring Boot] - Spring Boot Json, Gson을 이용한 JsonObject to String, String to JsonObject- JSON 2편

3. 2018/11/09 - [Develop/Spring Boot] - Spring Boot Json, Jackson을 이용한 JsonParsing - Json 3편

4. 2018/11/12 - [Develop/Spring Boot] - Spring Boot Deserialization Json, Deserialization JsonString to JsonObject - Json 4편

5. 2018/11/13 - [Develop/Spring Boot] - Spring Boot Json, hashmap to json , JsonObject 만들기- JSON 마지막


Spring boot에서 MySQL JSON 타입 SELECT하는 방법

1. 2018/11/30 - [Develop/Spring Boot] - Spring boot MySQL JSON - MySQL JSON DATA TYPE 값 가져오기



//import할 것
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

//EnittyManager 선언
@PersistenceContext
private EntityManager entityManager;


Query query = entityManager.createNativeQuery("SELECT id, password FROM Test");
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List r = query.getResultList();

for(Object obj : r) {
		Map row = (Map) obj;
			
		for(Object key: row.keySet()) {						
			System.out.println("key : " + key + "value : " + row.get(key));
		}		
}


이렇게 하게되면 결과가 Map 형식으로 mapping되어 나타나게 되며, 만약 테스트id라는 값과 테스트pw라는 값이 Test라는 테이블에 있다면,

key : id value : 테스트id

key : password value : 테스트pw

이렇게 값이 찍힌다.



+ Recent posts