본문 바로가기
프로젝트/세미프로젝트-병원 종합정보시스템 사이트

[오류] java.lang.Error: Unresolved compilation problem

by moca7 2024. 9. 22.

 

 

 

java.lang.Error: 해결되지 않은 컴파일 문제: sql 변수를 찾을 수 없습니다

 

 

 

ㅁ 오류 원인

 

 

- if 조건문으로 진료과로 '전체'를 선택하면 그냥 쿼리를 실행하고, 진료과로 '외과', '내과', '치과', '안과'를 선택하면 if문으로 sql문에 조건을 추가하게끔 작성했다.

- if 블록이든 else 블록이든 변수 sql은 생기는데 왜 오류가 나나 했는데, 블록 내에 선언해서 바깥에선 쓸 수 없었다.

 

- Java에서 변수의 스코프(scope) 규칙. 변수는 선언된 블록 내에서만 접근할 수 있다.

if-else 블록 내에서 변수를 선언하면 그 변수는 그 블록 내에서만 유효해서 다른 블록에서 접근할 수 없다.

 

 

 

 

ㅁ 해결

 

 

- 변수 sql을 if~else 블록 바깥에 선언한다.

 

 

 

 

- 오류가 뜨지 않고 검색된다.

- 그런데 이상하다. 의사는 4명이니 각기 다른 4명이 보여져야 하는데 한 명이 4번 보여진다.

 

>> 관련 게시글 : https://moca7.tistory.com/241 ([오답] Map 객체가 덮어씌워지는 문제)