본문 바로가기

1.프로그래밍/DB

(6)
[DataSource] DataSource 설정 정리 해당 글은 Naver D2 를 읽고 참고하여 정리해 놓은 것입니다. initialSize: BasicDataSource 클래스 생성 후 최초로 getConnection() 메서드를 호출할 때 커넥션 풀에 채워 넣을 커넥션 개수 maxActive: 동시에 사용할 수 있는 최대 커넥션 개수(기본값: 8) maxIdle: 커넥션 풀에 반납할 때 최대로 유지될 수 있는 커넥션 개수(기본값: 8) minIdle: 최소한으로 유지할 커넥션 개수(기본값: 0) maxActive >= initialSize maxActive = 10이고 initialSize = 20이라고 가정하면 최초에 커넥션을 생성할 때 initialSize 값이 최대 커넥션 개수인 maxActive 값보다 커서 논리적으로 오류가 있는 설정이다. m..
[Redis] WRONGTYPE Operation against a key holding the wrong kind of value [Redis] WRONGTYPE Operation against a key holding the wrong kind of value 레디스에 데이터를 집어 넣고 데이터를 조회하려 했다. opsForSet을 통해 Set을 이용하여 데이터를 관리하려고 했다. 그런데, 위와 같은 에러가 뜨면서 조회가 되질 않았다. 찾아보니, 레디스에도 데이터 타입이 존재하고, Set의 경우 smembers key 형식으로 가져올 수 있다고 한다. Redis support 5 types of data types. You need to know what type of value that key maps to, as for each data type, the command to retrieve it is different. Her..
[MyBatis] org.apache.ibatis.binding.BindingException: Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2] MyBatis 에러 [MyBatis] org.apache.ibatis.binding.BindingException: Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2] MyBatis 에러 [org.apache.ibatis.binding.BindingException:](org.apache.ibatis.binding.bindingexception:) Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2] 갑자기 잘 쓰던 문법에서 에러가 나타났다. ** BoardMapper.interface ** in..
[DB] Transaction 이란? [DB] Transaction 이란? Spring Boot을 공부하면서 @Transactional 선언적 트랜잭션에 대해 공부하고 사용하려고 했다. 그 전에 Transaction에 대한 개념부터 확실히 잡고가고 싶어 찾아보며 공부하고 정리하였다. Spring Boot의 @Transactional 선언적 트랜잭션에 대해서는 이 글 이후에 공부하고 글을 작성하겠다. Transaction 이란? 만약, 어떠한 결제 시스템을 만들었다고 가정을 해보자. 결제 시스템이 아니더라도 동시에 처리되는 시스템을 생각해도 된다 A라는 처리가 진행 된 후 B라는 처리가 진행되어야 된다고 생각을 해보았을 때, 둘다 개발자의 의도대로 진행된다면, 그건 매우 나이스 할것이다. 하지만, 만약의 경우와 사용자가 개발자의 의도에 벗어나..
[Mybatis] 생성한 키(PK) 리턴받기 두가지 방법(selectKey, useGeneratedKeys) [Mybatis] 생성한 키(PK) 리턴받기 두가지 방법(selectKey, useGeneratedKeys) 한 테이블에 insert 할 때 그 PK 값을 Foreign Key로 다른 테이블을 매핑시켜 등록 시키고 싶은 경우가 있다. 예를 들면, 현재 나의 상황처럼 어떠한 상품에 이미지를 등록하는데 그 상품의 PK를 FK로 받아 동시에 DB에 넘겨주고 싶었다. 즉, 그렇게 하려면 생성된 PK를 바로 리턴받아 사용해야 했고 그렇기에 Mybatis의 selectKey, useGeneratedKeys 두 가지 방법을 알게 되었다. 현재 사용하고 있는 DB는 MySql이다. selectKey useGenratedKeys selecyKey selectKey 공식문서 MyBatis has another way to..
[Mybatis] Mybatis #{}, ${} 의 차이 (Mybatis SQLSyntaxErrorException, Unknown column) Mybatis #{}, ${} 차이 공부하던 중 Thymeleaf를 사용하다 보니 무의식 적으로 xml 파일에서 ${} 이런 표현식을 사용하게 되었다. 처음에 위화감을 느끼지 못하고 Junit으로 단위 테스트를 진행했다. 역시나 당연하게 에러가 나게 되고 한참을 해메게 되다가 찾게 되었다. 내가 사용한 xml UPDATE vam_author SET authorName = ${authorName}, nationId = ${nationId}, authorIntro = ${authorIntro}, updateDate = now() WHERE authorId = ${authorId} 단위 테스트 @Test public void authorModifyTest() throws Exception { AuthorVO ..

728x90
반응형