본문 바로가기

디버깅

(48)
[Mybatis] insert, update 후 row의 column 값 return받기 그동안-_- 이걸 모르고 어떻게 개발했나 부끄럽지만.. 이제서야 알게 되었다. row를 insert하거나 update하면 그 row의 index값을 컨트롤러에서 사용해야 할때가 있다. 하지만 보통의 index는 auto increment 하거나, Oracle에선 sequence를 이용해서 값을 부여하기 때문에 insert되기 전까지 row의 index를 판별할 수가 없다. sqlsession에서 insert()에 리턴이 있고.. 메소드를 자세히 읽어보면 selectKey라는걸 리턴받을 수가 있는데 (이걸 쓰면서 처음 읽어본 내 자신에게 반성을..) 이 selectKey라는건 컬럼을 직접 지정해주면 되고.. 지정하면 리턴받을 수 있다. 대략 그것에 대한 설명이 되겠다. 1. insert 태그에 proper..
[Spring] Mybatis SQL Log 출력 모듈 추가하기 보통 ORM.. 자바에서는 JPA를 이용한 관계형 데이터 베이스가 아니라면.. 스프링 웹 프로젝트는 쿼리를 기반으로 한 OOP가 주력 패러다임 일 것이다. 그말은 작성해야 하고 디버깅 해야 할 SQL의 양이 상당하고 피할수가 없다는 것인데. 스프링 프로젝트에 기본 세팅에는 SQL Logging이 켜져 있지 않다. 이 글에선 Console 창에 Mybatis 에서 어떤 쿼리가 실행되는지. 쿼리에 어떤 매개변수를 받고.. 실행된 쿼리에서 어떤 데이터를 반환받는지 등을 콘솔에서 바로바로 볼 수 있게 세팅 할 것이다. (statement, preparedstatement) 물론 LIST나 MAP의 형태로 받은 데이터를 logger로 출력해도 비슷하게 볼 수 있으나, 그 데이터가 조금만 늘어도 한줄로 길게 출력 ..
[Java] .toString() 보다는 String.valueOf()를 사용하자.. (Null Point Exception) 자바의 단점이랄까.. 태생(?)의 문제점을 꼽으라면 아마도 Null 포인트 Exception을 많이 꼽으실겁니다. 아무리 신경쓰고 잘 처리 한다고 해도.. 자바를 처음 배울때부터 능숙해져도 널포인트는 자바 개발자라면 땔수없는 (ㅠㅠ) 그런 오류겠지요.특히 String에서 값의 여부를 판단하려면 보통 이런 코드를 많이 작성하게 되죠. (StringUtil 같은 Class를 만들지 않았다면)123456String data; if (data != null && "".equals(data)){ 'Something'} Colored by Color Scriptercs 와 같은 짓을 해야하는 불편도 있습니다. 여하튼 이번 포스팅에서 적어보려고 하는건 값을 String에 담거나 혹은 담기전에 캐스팅에 관한 이야기입니..
[Git] eclipse 에서 git push시 rejected-non fast-forward 에서 해결 이번에도 git에 대한 일지입니다. 간혹 알수 없는 (?) 이유로 해당 오류가 나곤 하는데. 해결 방법을 검색해서 다음과 같이 해결 하였습니다.Git Repositories 탭에서 Remotes - origin에 push 방향에 우클릭하여 Configure Fetch를 누릅니다.Git Repositories는 Window - Show view - Other 로 찾아갈 수 있습니다. Ref mappings가 비어 있다면 add를 눌러 추가하고, 이미 추가 되어있다면 Advanced를 누릅니다.Specificattion for fetch에 기존에 등록된 Source Ref가 있다면 Remove를 눌러 제거 해줍니다. 그리고 상단의 탭을 이용해 add Spec을 새로 해줍니다. Finish - Save and..
[Git] push가 완료된 commit 여러개를 하나로 합쳐보자 Git을 손에 익히기 위해 프로젝트를 여기저기 PC에서 Clone하여 작업을 하고 있다. 지난 글에선 Pull할때 충돌 하는 것을 해결 했다면.. 이번엔 repository를 개선하는 작업 중 하나인 Squash 를 하게 될겁니다. 우선 git bash 혹은 터미널에서$ git log 명령어를 입력하면 그간의 git 로그들을 쭉 볼 수 있습니다. 간단한 사용법은.. 스크롤을 쭉 누르면 로그가 끝까지 계속해서 나오고 종료하려면 'q'를 누르면 됩니다. 우리가 하고자 하는 것은 두개이상의 commit을 하나로 합치려는 것입니다. 보통 git log에서 현재를 기준으로 최신의 것을 내림차순으로 정렬해줍니다.보통 rebase 라는 걸 이용해서 하게 되는데. 간단히 말하자면 가장 최신의 것을 기준으로 하단의 co..
[Git] eclipse Git에서 Pull 에러 (checkout conflict with files : ~~) 위 에러는 여러 환경, 혹은 협업을 하면서 충분히 일어날 수 있는 상황인데 요약하자며 내가 Commit하기전에 Pull을 안받았거나, Pull을 받을때 이미 HEAD와 소스가 다를때 주로 발생합니다. (Repository HEAD 상황과 내 로컬 상황이 달라서 발생) 말그대로 파일의 소스가 충돌이 난다는 것.. Eclipse에서 Pull을 받을때 경고창을 열어보면 어떤 파일이 Conflict이 나는지 파일을 다 하나씩 보여줍니다. 'Checkout conflict with files : ~~~ (file 경로)' 기본적으로 Git Pull 명령어는 Pull = Fetch + Merge 이기 때문입니다. Fetch는 Remote의 소스를 내려 받는 것이고.. Merge는 쉽게 말해 Remote와 소스가 같..
[TIP] Eclipse HTML5 템플릿 추가 기본적으로 이클립스와 STS에는 HTML4.1? 템플릿만 존재합니다. 현재는 HTML5가 빠르게 늘어나고 권장되고 있기에 이클립스에 HTML5 템플릿을 추가해볼겁니다. 사실 HTML5 템플릿은 매우 간소화되었는데.. 필요할때면 까먹어버리므로 기록을 위해 적어둡니다. Preferences -> Web -> JSP Files -> Editor -> Templates 탭구찮으신분들은 Ctrl + N -> Jsp File -> 파일명 정하고 Next -> Previews 하단의 'JSP Templates' 파란색 링크 클릭New 누르고 Name : New JSP Files (html5)Context : New JSPDescription : This is HTML5 TemplatesPattern : 1234567..
[Git] STS, Eclipse에서 github 프로젝트 가져오기, clone하기 (스프링 프로젝트) eclipse, STS에서 모두 가능한 방법입니다. eclipse에서는 marketplace에서 git을 설치하면 가능합니다. 개인적으로 souretree에서 git을 이용해 프로젝트를 관리했었는데. 이게 eclipse를 쓴다면 경로문제 때문에 생각보다 귀찮은면이 좀 있어서 eclipse 자체에서 git을 이용하면 어떨까 하면서 시작하게 되었다. 보통은 eclipse로 버전관리를 하면 svn을 많이 써서 그런지. 생각보다 git에 대한 정보를 명확하게 적은사람이 많이 없었다.그러다가 spring으로 블로그 코드를 작성하시는 분이 계시는데. 그분이 소스를 전부공개 하면서 강좌를 올리셨고, 그분께서 올린 방법이 크게 도움이 되었다. (기존에 작성된 블로그의 방법은 경로문제 때문에 clone을 해도 제대로 돌..