728x90
반응형

JDBC 연결 설정 후 테스트 코드 작성 및 실행중 에러가 발생했다.

"Connection is closed"

 

 

에러 내용 :

java.lang.IllegalStateException: java.sql.SQLException: Connection is closed

at co m.hello.hellospring.repository.JdbcMemberRepository.save(JdbcMemberRepository.java:47) 
at co m.hello.hellospring.service.MemberService.join(MemberService.java:24) 
at com.hello.hellospring.service.MemberServiceIntegrationTest.회원가입(MemberServiceIntegrationTest.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)

 

 

 

해결 :

JDBC 연동관련 repository 소스에서

close() 함수 내부의 기존 conn.close()close(conn)으로 변경해주니 바로 해결되었다.

 

JdbcMemberRepository.java

 

 

오늘도 에러 해결 완료! (오 에 해 완!)

728x90
반응형
728x90
반응형

Test가 정상 통과로 작동해야 하는데 에러가 발생했다.

데이터베이스 커넥션 오류 발생!

 

에러 내용 :

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200]....

 

해결 :

application.properties 파일에 코드 한 줄 추가로 해결 완료!

 

application.properties

 

 

 

스프링부트 2.4부터는 아래 코드가 없을 경우

...Wrong user name or password... 에러가 발생한다고 한다.

spring.datasource.username=sa

 

 

 

728x90
반응형
728x90
반응형

인프런 강의를 들으며 JDBC 연결 관련 test 코드를 세팅하다가

@Transactional 애노테이션 import가 안되는 에러 발생!

사용 DB : H2 Database

 

 

 

해결 방법

build.gradle파일 내부 의존성 코드 두 줄을 추가하였다.

implementation("org.springframework.boot:spring-boot-starter-jdbc")
runtimeOnly("com.h2database:h2")

 

의존성 코드를 추가하고 난 뒤에 Gradle refresh를 해주기 위해

오른쪽 부분에 떠있는 작은 돌고래 모양의 버튼 클릭

(Road Gradle Changes 단축키:Ctrl + Shift + O)

또는 Gradle 창에서 Reload 해주면 수정사항이 반영되어

에러났던 코드로 돌아가 다시 import 시도하니 정상적으로 됨.

728x90
반응형
728x90
반응형

인텔리제이 설정창에서

[ Editor > General > Code Folding ]

Java 영역에서 One-line methods 체크를 해제하면 된다.

 

728x90
반응형
728x90
반응형

인텔리제이 단축키 (feat. 이클립스)

(새로 알게 된 단축키는 계속해서 업데이트 ing)

 

한 행 삭제

Ctrl + Y

Ctrl + D (이클립스)

 

행 복제 (다중선택 가능)

Ctrl + D

Ctrl + Alt + ↑ (또는 ↓) (이클립스)

 

행 이동 (다중선택 가능)

Alt + Shift + ↑ (또는 ↓)

Alt + ↑ (또는 ↓) (이클립스)

 

변수 추출

Ctrl + Alt + V

 

Generate Getter, Setter, Constructor 등등

Alt + Insert

Alt + Shift + S (이클립스)

 

static import

Alt + Enter

 

Create Test

Ctrl + Shift + T (Window)

Command + Shift + T (Mac)

 

Rename 리네임 (파일(필드)명 변경할 때, 비슷한 이름의 여러 변수 만들 때)

Shift + F6

 

Inline Variable

Alt + Shift + Enter

 

System.out.println() - sysout 자동완성 단축키 

sout 입력 후 Ctrl + space

sysout 입력 후 Ctrl + space (이클립스)

 

setting(설정)
Ctrl + Alt + s

 

자동 정렬
Ctrl + Alt + L (Window)

Command + Alt + L (Mac)

-> 자동 정렬은 스타일도 지정 가능하다고 함 (Settings Code Style 메뉴쪽)

 

 

+

이클립스 툴에서 한무무 키보드 사용 중 insert 겹쳐쓰기가 자꾸 활성화 될 때

-> Shift + Win + 0 ( 숫자 0 )

 

이클립스 툴에서 한줄 선택

-> Home, Shift + End

 

TMI

프로그램 언어별로 함수명은 비슷하기라도 하잖아요

단축키도 맞춰주지 그랬어요..왜 대부분 다른 것이에오

자주 안쓰는 IDE 단축키는 헷갈린다구요 ( ´•̥̥̥ω•̥̥̥` )

728x90
반응형

+ Recent posts