수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

IBatis에서 쿼리 결과값 처리에 대한 질문이 있습니다..

후회중

2023.04.01

안녕하세요~

현재만들고 있는프로그램에서 공부겸해서 IBatis를 사용해 보고있는데요..

조언을 구하고자.. 이렇게 질문을 드리게 됐습니다.^^;

Ibatis에서는 queryForXXX()메소드를 이용하여 쿼리 결과값들을 지정된 객체로 반환시켜 주자나요?

저는 일단 SqlMap.xml 매핑구문에서resultClass=hashmap 으로 했구요

List list = queryForList(ABC, Map객체); 이런 형태로해당 매핑구문의 쿼리 결과값을 List에 담습니다.

이 list를 Client에 Socket을 이용해서 그대로 보내주게 됩니다.. 그리고 Client는받은 list를지지고 볶아서 JTable에 뿌려주

는 형식의 프로그램입니다....;

문제는.. 쿼리 결과의 레코드 수가 꽤 많은 경우에 Socket으로 list를 전송하게되면 사용메모리가 마구 마구 늘어남과 동시에

처리시간이 무지무지 오래걸린다는 점입니다...ㅠ0ㅠ

아무튼 결과를 빈즈에 담아서 사용하는 방식이라던가.. RowHandler를 이용해서 결과를 쪼개서 처리하는 방식이라던가..

인터넷을 뒤져가며 이것저것 바꿔서 테스트를 해봤는데.. 잘 모르니.. 바꿔서 적용을 시켜볼려고 해도... 시간만 잡아먹고

어느새 익셉션과 친구가 되었습니다.ㄱㅠ;

통신방식을 Socket이 아닌 다른 방식을 써야할까요..

아니면 Ibatis에서 방대한 결과값을 처리하는 방식이 있는지요.. 그래서 Socket통신으로도 무리가 없는..그런 방법이 있을까요?

왜 굳이 이런 프로그램에 IBatis를 쓰느냐.. 하실 수도 있겠지만..

IBatis의 사용이 비효율 적이더라도... IBatis는 꼭 사용해야 됩니다... 이해가 안되시겠지만..ㅋㅋㅠ.,ㅠ 사정이 있습니다ㅋ

부디 친절한 코드인 여러분.. 도움의 손길 좀 주세요ㅋ

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 희1미햬

    페이징 처리를 하시면 될 것 같은데요. 그것을 다 볼리도 없고 LIMIT을 이용해서 볼것만 가져오고 나머지는 OFFSET을 이용해 버리시면 될 것 같은데요.

  • 빛초롱

    모두 답변 감사드립니다^^ 시행착오를 거쳐서 깨달음을 얻는 수 밖에 없는 것인가요..ㅋ
    아..통계는.. 처음에 날짜로 검색한 결과테이블에서 일별로 A컬럼의 어떤 값들이 몇 건이 있는지를 나타내게 됩니다.. 마지막으로는 금액을 입력해서 건수에 대해 계산을 하는.. 이런식 입니다..ㅠ

  • VE

    통계를 어떻게 내시는지 모르겠지만 쿼리로 해결 가능할거 같은데요 ^^;;

  • 갤원

    페이징 처리를 하지 않을시에는 select * from table 이런식으로 쿼리를 날리게 되는데요.. 이런것은 table full scan 합니다.
    건수를 가져온다면 select count(*) from table 쿼리를 날리게 되는데 count는 index fast full scan을 하게됩니다..
    2가지의 차이점은 검색을 해보세요..

  • 민서

    고객이 1명뿐이라면 모르겠지만..
    방대한 데이터를 그렇게 로딩하시면 나중에 프로그램 죽습니다.^^
    구현하려는 로직에 따라서는 답이 바뀌는지라~

  • 미르

    수다님 답변 감사합니다. 생각해보니 일단 페이징 처리를 해서 가져오는게 낫겠네요. 한번에 방대한 쿼리결과를 가져오려는것도 db자체에 무리가 갈 수도 있으니까요. 하지만 또 한가지 문제는.. 프로그램에서 결과목록을 가지고 건수를 기준으로 통계를 내야하는데요 만약 검색 결과가 만건인데 페이징 처리해서 천건씩 짤라서 가져온다고 해도 통계를 내기위해서는 어차피 만건을 다 가져와야 합니다. 그렇다면 일단 처음 가져온 천건은 화면에 뿌려주고 프로그램에서는 페이지

  • 슬S2아

    ibatis는 사용해 보지 않아서.. 잘 모릅니다. 다만 대량의 데이타를 처리할때..대량의 데이타를 화면에 보여주고자 할때 예를든다면 대략 만건 정도.. 이 정도 데이타를 뿌려줄일이 있을까요? 보여준다 해도 유저가 그걸다 보고 있을까요? 전 이런경우.. 아예 paging을 하거나 아니면 쿼리를 손봐서 무조건 천건씩 가져오게 합니다. 이때는 전체 건수를 알고 있어야 하고 화면에서 scrollbar의 event를 잡아줘야 하고요
    이 event가 화면에서

번호 제 목 글쓴이 날짜
2699296 동영상 배경 질문드려요!!!!!!!!!!!!!! 핫파랑 2025-06-24
2699214 position:fixed 에 대한 질문입니다.. (7) 사이 2025-06-24
2699183 제이쿼리 이미지 슬라이드 위치값 수정 초엘 2025-06-23
2699153 테마[ADORABLE]에서 페이지생성시 하위페이지는 2개밖에 안되나요? 흰여울 2025-06-23
2699129 네이버 블로그 또는 사이트의 글을 불러오기 갤원 2025-06-23
2699070 탭메뉴처럼 셀렉트 박스를 이용해서 내용을 출력할 수 있는 방법이 있을까요. (3) 큰꽃늘 2025-06-22
2699016 인터넷이 안되는 환경에서 validator설치방법 (3) 은송이 2025-06-22
2698988 대체 C++ 6.0 exe 아이콘은 어떻게 넣는건가요? 외국녀 2025-06-22
2698960 음성파일을 embed로 작업했는데..웹 표준코딩으로 변경하려면 어떻게 해야하나요? (1) 잎새 2025-06-21
2698932 메뉴목록 풍선창 만들기 html (2) 하늘이 2025-06-21
2698901 http://www.zeitgeistbot.com/ 이 사이트처럼 움직이는 효과를 무엇이라고 하나요? 누림 2025-06-21
2698876 table width값 크로스브라우징에 대한 문의 (2) 볼수록매력 2025-06-21
2698849 c언어 질문. (3) 아름나 2025-06-20
2698823 setInterval 이벤트 제거 하려면... 가온길 2025-06-20
2698796 이 오류를 이해를 못하겠어요 Addicted 2025-06-20
2698712 IF 문 이 계속 오류가 나요 (2) 옆집오빠야 2025-06-19
2698687 이미지를 클릭하면 그 이미지를 다운받게해주는 방법 질문요 ^^ (미해결) (5) 해지개 2025-06-19
2698663 상속하면 자꾸 class 이름이 애러가 나네요 (2) 미련곰탱이 2025-06-19
2698637 마크업 질문요~~ (6) 바르고 2025-06-18
2698551 게시판폭보다 큰 이미지올릴때 어떻게 하시는지요 (9) 에드문드 2025-06-18
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com