데이터베이스에서 컬럼을 만들때 자바에서변수명이나 메소드명을 만들때처럼 2개이상의 영어단어를 조합하여 만들 때가 있다. 2개 3개 이상의 긴 영어단어로 만들게되면변수명이나 메소드명처럼 가독성이 떨어지게 되는데변수명과 메소드명을 만들때는 카멜케이스를 사용하면 되지만컬럼명은 카멜케이스로 만들수 없다. 그렇기 때문에 데이터베이스에서 컬럼명을 길게 만들어야 할 때 에는 언더바 _ 를 사용 하게 되는데 예를 들어 조회수 컬럼명을 만든다고 한다면 viewcnt로 만드는것이 아닌view_cnt로 만드는 것이다. 보통 데이터베이스의 값들을 jstl로 화면상에 뿌려줄때는VO를 통해 값을 뿌린다. 하지만 jsp 화면단에서 이 컬럼명으로 값을 불러 올수 없다. 그렇기 때문에 보통 스프링에서 언더바를 사용한 컬럼명을 사용해야할..
이제 게시글의 수정과 삭제에 대해 알아보자.게시글의 수정과 삭제버튼은 보통 게시글을상세볼수있는 페이지에 위치한다 또한 다시 목록으로 갈수있도록"목록으로" 버튼도 존재한다. 일단 상세보기 페이지에서목록으로, 삭제, 수정 버튼을 만들어주자. 이제 스크립트단안에 detailForm이라는 클래스를하나 만들어준다음 버튼이 눌려질때마다 각 컨트롤러로 이동될수 있도록 해주자. 다음 상세보기 페이지에서 form태그에 id값을 달아준다음. form태그가 submit될때글 번호도 같이 submit될수 있도록input태그를 사용해 글번호를 적어주자.화면상에 보여질 필요는 없으니 타입을 hidden으로 주자. 이제 컨트롤러에서 글수정 form 을 위한 맵핑을 시켜준다음 글수정 폼으로 갈수있도록 리턴해주자.boardServic..
이전 포스팅들에서는 게시판의 글 리스트 불러오기와 글 상세보기를 했다. 이번포스팅에서는게시글 작성을 한번 만들어 보자. 먼저 글쓰기 버튼을 만들어준 다음 버튼에 id값을 설정한다. 다음 게시글리스트 jsp에서 글쓰기 버튼을 눌러주면글작성 Form 으로 이동할수 있도록 스크립트단을아래와 같이 만들어준다. 다음 컨트롤러에서 boardInsertForm을 맵핑시켜준다. 이제 글 작성자를 위한 세션을 하나 만들겠다. 게시판에 글을 작성하기위해선 로그인이 필요하다 보통 글 작성을 할때 글 작성자에는 로그인한 아이디값이 들어가지게 된다. 이를 위해 메인 컨트롤러에서간단하게 세션을 하나 만들어준 후 작성자로 사용하겠다. 위처럼 메인 컨트롤러에서 세션을 만들어준후. 게시판 글 작성 컨트롤러에서 세션을 불러와 사용할수 ..
이번엔 게시글 상세보기를 만들어보자 게시글 상세보기는 보고싶은 해당 게시판의로우를 클릭하면 글의 상세내용을 볼수 있도록 하는기능이다. 먼저 로우 클릭을위해 리스트를 보여주는 jsp화면단에서tr태그를 만들어주고 그안에 rowClick클래스를 넣어주자. 다음 스크립트단을 아래와 같이 만들어주자. rowClick를 클릭할때 function이 실행되며제이쿼리를 이용해 this타겟을(tr) 잡고 children을(td) 이용해 바로밑의자식노드의 값을 가져와 boardno에 저장한다. 이제 실행을 한다음 게시판 리스트에서 상세보기를 하려는 글의 로우를 클릭하면 위와 같이 alert이 뜨며 위에서 제이쿼리 타겟으로 잡은값인boardno 의 값이 alert창으로 출력된다. 이제 BoardVO를 만들어주자. VO안에는 ..
게시판의 댓글 쿼리가 마리아DB쿼리로 되어있어 이 쿼리문을 오라클쿼리로 바꿨다. 처음에 난 저 쿼리문을 오라클 쿼리로 따로바꿔줘야 되는지 몰랐다.. 위 쿼리문은 댓글을 Insert하는 쿼리인데댓글을 get하는 쿼리문에서 repNo값이 계속null로 나와 오류가 났다. 내가 사용하고있는프로젝트와 위 마리아DB를 사용한 프로젝트가 달라오류 찾기가 어려웠다. 변수명과 컬럼명이 다 달랐기 때문에난 당연히 컨트롤러 쪽이나 뭐 어디선가 내가 오타를 낸줄 알고계속 찾았는데 1시간동안 해결도 못하고 멍때리고 있는순간 갑자기 jqgrid사용했을때 쿼리문에서 keyProperty를 사용한것이떠올랐다. 바로 구글에 검색을 해보니 마리아DB/Mysql 이랑오라클에서 keyProperty를 사용할때 문법이 다르다고 한다... ..
오랜만에 전자정부프레임워크 카테고리에글을 쓰는것 같다. 요즘 블로그에 개발Tip, 취업Tip 카테고리에만글을 써서 정작 중요한 기능관련 글을 안쓴것 같다 라는 생각이들어전자정부프레임워크를 사용해 게시판 만드는 글을 포스팅 해야겠다!! 먼저 게시판 하면 떠오르는 것은 CRUD 이다.(개인적으로)아마 웹 개발 쪽으로 공부를 하거나 취업을 준비하고 있다면CRUD, RESTful 을 들어봤을 것이다.(RESTful 관련 포스팅은 추후에 하겠습니다). CRUD는 Create, Read, Update, Delete 의 앞글자를 딴 것이다. 보통 취업 준비를 위해 국비를 다니거나, 혼자 공부를 하며웹 을 하나 만들면 게시판은 거의 무조건적으로 들어가 있을것이라 생각한다. 왜냐하면 게시판 기능이 그만큼 중요하기 때문이..
게시판 댓글 기능에서 댓글은 해당 작성하고 있는게시글의 번호를 가지고 있어야 한다. 즉, 게시글 번호가 3번인 게시글에 댓글을 달려면 이 댓글은 게시글 3번 값을 가지고 있어야 한다. 보통 게시판 기능과 댓글 기능의 테이블은서로 다르다. Board 라는 게시판 글 작성테이블이 있다면 Board_Reply 라는 게시글의 댓글을작성하는 테이블이 있어야 한다. 게시글 번호의 컬럼이 hno라고 생각해보자.이 컬럼이 있는 테이블은 Board 가 될것이고, Board_Reply테이블에서는 hno 값을 가지고 있어야하기 때문에 외래키를 사용할 수 밖에 없다. 먼저 HeidiSQL 에서는 외래키 설정이 쉽다. 위처럼 그냥 메뉴탭에 외래키 설정이 있다왼쪽에 +추가 버튼 누르고 참조하려는 테이블과컬럼을 적어주면 된다. s..
어제 MariaDB로 만들어진 페이징이랑, 게시판 댓글 쿼리들을오라클 쿼리들로 바꿨다. 마이바티스에서 사용하는쿼리들은 바꾸는데 어렵지 않았다. (어차피 쿼리는 그게그거이기 때문에...)그런데 시퀀스랑 외래키 설정 때문에 시간을 얼마나버렸는지 모르겠다. 먼저 외래키 설정은 어렵지 않으니다음 포스팅에서 따로 알아보겠다. MariaDB를 편하게 사용 하기위해 개발툴을 HeidiSQL을썼다. 거기서 기본키로 설정된댓글에 번호 메기는 rep_no 라는 컬럼을 기본값으로AUTO_INCREMENT 줬다. 이것이 문제의 근원이다. 먼저 AUTO_INCREMENT 에 대해 알아보면오라클에서의 시퀀스다 값이 생성 될 때 마다 1씩 증가 시켜준다.즉 댓글 번호를 가르키는 rep_no 라는 컬럼이한번 생성 즉, 댓글이 한번 ..