전체 글
HashMap이란?
HashMap은 대표적인 Map 컬렉션 중 하나이다. Map 컬렉션에는 HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 등이 있다. Map인터페이스를 상속하고 있기 때문에 Map의 성질을 그대로 가지고 있다. 키와 값은 모두 객체이고, 값은 중복저장될 수 있지만, 키는 중복저장될 수 없다. 키를 중복저장하면 기존의 값은 사라지고 새로 등록한 값이 저장된다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다고 한다. 키 (key) 값 (value)은 간단하다. HasMap의 사용법은 HashMap map(내가 설정하고 싶은 이름) = new HashMap(); new로 HashM..
[스프링]-댓글 수 구현 : 동기,비동기 방식을 사용할 때의 구현, 차이점과 2가지의 댓글 수 변경 로직
이번글은 1. 동기식 댓글작성을 사용할때 댓글수 구현 2. 비동기식 댓글작성을 사용할때 댓글수 구현 3. 그리고 전체댓글개수를 검색해서(select count) 댓글수를 변경하는 방법과 댓글 작성시 +1 , 삭제시 -1 로 댓글수를 변경하는 방법 을 설명합니다. 서비스중인 게시판들을 보면, 게시판 제목 옆에 댓글이 몇개 달렸는지 나와있는 부분이 있다. 그 부분을 구현해보려고 한다. 바로 이 전 글인 조회수 증가와 비슷한 부분이 있다 -------- 동기식 ( 서브쿼리 방식) ALTER TABLE MP_BOARD ADD(REPLYHIT NUMBER DEFAULT 0); COMMIT; 일단 게시글 테이블에 댓글수 컬럼을 추가해준다. public class BoardVO { private int bno; pr..
[스프링] 게시글 조회수와 트랜잭션 구현
오라클 사용중입니다. ALTER TABLE MP_BOARD ADD(HIT NUMBER DEFAULT 0); COMMIT; 조회수 칼럼 HIT 를 게시판 테이블에 추가 public class BoardVO { private int bno; private String title; private String content; private String writer; private Date regdate; private int hit; 게시판VO에 hit를 추가하고 getter&setter를 생성 org.springframework spring-tx 3.1.1.RELEASE 트랜잭션을 사용하기위해 트랜잭션관련 라이브러리를 가져올 코드를 pom.xml에 추가 스프링 트랜잭션 라이브러리를 사용하기위해 root-con..
ajax - 날짜(Date) 받아오기 , Date값을 String값으로 변환
댓글 작성 구현 중 댓글 내용, 작성자 는 모두 값을 잘 받아오나 날짜를 알려주는 Date타입의 값이 제대로 넘어오지 않음. Date타입은 ajax에서 읽을 수 없다고 한다. 해결 : @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") 쿼리에서 값을 받는 VO에서 date타입을 스트링 형태로 변환해서 ajax에서 사용. public class ReplyVO { private int bno; private int rno; private String content; private String writer; @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") private Date ..
Unknown tag (form:form), (form:hidden)
http://www.springframework.org/tags/form"%> jsp페이지 상단에 태그를 추가해준다.
java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList Json데이터를 받지 못할때
SEVERE: 경로 []의 컨텍스트 내의 서블릿 [appServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList]을(를) 발생시켰습니다. java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList at org.springframework.web..
스프링 페이징 구현 - 게시글 수정,삭제,내용보기 후 검색어유지
UriComponents 을 사용해서 페이징과 게시글 검색 기능을 구현했다. 그 후에 검색기능 후 url로 검색어 유지 기능 1.검색 후 게시글 내용페이지로 들어가서 목록을 눌렀을때 검색어를 유지한채로 list로 돌아가기 2.삭제 시 원래 검색어를 유지한채 list로 돌아가기) 3.수정페이지에서 취소시 원래 검색어를 유지한채 readView로 돌아가기) 4.수정 후 readView에서 목록을 눌러 list로 돌아갈때 검색어 유지) 을 추가했다. ************* SearchCriteria scri = 페이징과 검색어 값이 담긴 클래스 BoardVO boardVO = 게시글 PR,제목,내용,작성자 등 게시글 관련값이 담긴 클래스 RedirectAttributes rttr= http주소 header ..
ajax post()함수로 jsp파일 로드(POST)
welcome.jsp 환영합니다. 님 환영합니다. ${param.username}님 //post()함수 방식으로 jsp파일로드하는방식 (주석부분) ajax로 jsp파일 로드하기 이름을 입력하세요 : 결과: 환영합니다 [입력한 이름] 님 환영합니다 [입력한 이름] 님 같은 결과가 두번 출력된다. type : post를 submit해서 jsp파일에서 requestParameter 나 param.username으로 이름을 비동기 방식으로 받을 수 있다.
ajax에 대하여 -$.load(), JSON파일,XML파일,JS파일 예제 (GET)
* Ajax (Asynchronous JavaScript + XML) JavaScript와 XML을 이용한 비동기 통신처리를 구현하는 기술 -> JavaScript로 웹 페이지 전체를 다시 읽어 들이지 않고 서버와 데이터를 주고 받는 경우에 사용함. JavaScript를 이용해서 서버에서 데이터를 가져와 페이지 전체의 갱신(refresh)없이 특정 부분만을 변경하는 것이 가능합니다. 이러한 처리를 가능하도록 하는 것이 Ajax입니다. 웹브라우저는 웹페이지를 표시하기 위해 서버로부터 HTML파일을 가져와서 HTML을 해석한 후 화면에 뿌려줍니다. 예를들어 유저가 새로운 정보를 가져와 웹 페이지 전체를 갱신 합니다. 이러한 프로세싱 과정, 즉 브라우저가 서버로부터 HTML을 읽어 들이고 해석하여 화면에 표시..
extends 와 implements의 차이 - 상속
스프링으로 공부를 하던 중, implements로 서비스나 DAO,Mapper(interface) 등을 상속해서 사용하다가 클래스를 상속해야하는 상황이 생겨서 extends를 사용하게 됐다. 이 차이에 대해 궁금해졌다. 객체지향 프로그래밍의 특징으로는 1. 상속과 인터페이스 (계층성) 2. 다형성,사용편의성(모듈화) 3.캡슐화,정보은닉 4.자료 추상화(모델링) 5.동적바인딩 이 있다. 상속이란 무엇인가? 상자 하나하나는 모두 객체이고 , 객체는 class이다. 계층을 표현하기 위해 만들어 진 것이 상속이고, 하위 객체는 상위 객체의 특징을 물려받는다. 식물class는 stand() , 동물class는 move()라는 메소드가 있으면 동물class 아래의 포유류,조류,파충류 class는 move()라는 메..