Programming 152

[DB] iBatis(MyBatis) Map, List 형식으로 받기

iBatis(MyBatis) Map, List 형식으로 받기 보통 루프문으로 List를 돌면서 DAO에 삽입하는데, iBatis(MyBatis)에서 Map이나 List로받아 처리하는 방법도 있다. 뭐가 더 효율적인지는 알아봐야겠다.. iBatis1. Map 형태INSERT INTO EXAMPLE(SEQ, A, B, C, D) ( #List[].seq# , #List[].a#, #List[].b#, #List[].c#, #List[].d#) 2. List 형태INSERT INTO EXAMPLE(SEQ, A, B, C, D) VALUES( #[].seq# , #List[].a#, #List[].b#, #List[].c#, #List[].d#) mybatisINSERT INTO EXAMPLE(SEQ, A, B..

Programming/DB 2015.01.20

[java] java JSON 데이터 파싱

java JSON 데이터 파싱 자바 코드안에서 해당 URL 접속 후 응답받은 JSON객체를 파싱하는 예제 JSON Simple maven dependency com.googlecode.json-simplejson-simple1.1.1 Methodtry{// 위도, 경도String location = lat + "," + lng;// APIString weatherApi = "http://api.wunderground.com/api/" + apikey + "/conditions/lang:us/q/" + location + ".json"; // java.net.URLURL url = new URL(weatherApi);// Connection 객체를 InputStreamReader로 읽고 utf-8로 인코딩..

Programming/java 2015.01.20

[java] Geocoder을 이용해 주소를 위도/경도로 변환하기

Geocoder을 이용해 주소를 위도/경도로 변환하기 Geocoding이란 주소를 위도, 경도로 변환해주는 Google에서 제공하는 API이다. 링크 : 지오코딩이란? 처음엔 HttpURLConnection으로 접속해서 InputStreamReader로 읽은 후 JSON으로 파싱하게만들었었는데 외국 사이트에 geocoder 라이브러리를 이용하여 받아오는 예제가 있었다.어쨌든 더 편리하고 깔끔하게 해결되었다. Geocoder Maven dependencycom.google.code.geocoder-javageocoder-java0.16 Methodpublic static Float[] geoCoding(String location) {if (location == null) return null; Geoco..

Programming/java 2015.01.16

[Spring] @ResponseBody 리턴시 Timestamp 깨짐 현상

@ResponseBody 리턴시 Timestamp 깨짐 현상 Spring MVC에서 리턴 타입 앞에 @ResponseBody를 명시할 경우 사용되는 Jackson 라이브러리는 Oracle의 DATE 타입의 데이터를 수용하는 java.sql.Timestamp 타입을 정상적으로 변환하지 못하여 View에서 값이 비정상적으로 출력되는 현상. 해결 방법으로는 커스터마이징된 ObjectMapper상속 클래스를 구현하고 DispatcherServlet에 등록하면 View에서 값이 정상적으로 출력된다고 한다. CustomObjectMapper.javaimport java.text.SimpleDateFormat;import org.codehaus.jackson.map.ObjectMapper;import org.code..

Programming/Spring 2015.01.13

[Spring] @RequestParam

@RequestParam @RequestParam은 HTTP Request 파라미터를 받을 수 있는 어노테이션으로 파라메터와 변수명을 일치 시킨면 자동으로 값이 1:1 매핑 된다. public String selectBoard(@RequestParam("board_no") String board_id) { } RequestParam은 default로 반드시 값이 존재해야 하도록 설정되어 있다. 이 설정은 required 옵션으로 필수 값에서 제외 시킬 수 있다.public String selectBoard(@RequestParam(value="board_no", required=false) String board_id) { } defaultValue 로 기본값을 지정할 수 있다.public String ..

Programming/Spring 2015.01.13

[Spring] @RequestBody

@RequestBody POST, PUT 등 body를 읽어와야 하는경우 BufferedReader를 이용하여 받아와야 하지만,스프링에서는 @RequestBody를 이용하여 받아올 수 있다. 이 애노테이션이 붙은 파라미터에는 HTTP 요청의 본문 body 부분이 그대로 전달된다. AnnotationMethodHandlerAdapter에는 HttpMessageConverter 타입의 메시지 변환기message converter가 여러 개 등록되어 있다. @RequestBody가 붙은 파라미터가 있으면 HTTP 요청의 미디어 타입과 파라미터의 타입을 먼저 확인한다.(servlet-context.xml 에서 태그 내에 선언하는 에서 확인). 메시지 변환기 중에서 해당 미디어 타입과 파라미터 타입을 처리할 수 ..

Programming/Spring 2015.01.13

[Spring] @PathVariable

@PathVariable Spring으로 REST API를 구현하면서 알게되었다.@PathVariable은 스프링3 부터 지원되는 기능이라고 한다. @RequestMapping의 URL에 {}로 들어가는 패스 변수(Path Variable)를 받는다.기본적으로 user_id가 seongilman이라는 사용자를 조회할 때 아래처럼 작성을 한다. 기본적인 GET 방식http://url/user?user_id=seongilman @RequestMapping(value = "/user", method = RequestMethod.GET)public ResultVO getUserInfo(HttpServletRequest request, HttpServletResponse response){String user_i..

Programming/Spring 2015.01.09

[Spring] @PathVariable 사용시 주의점

@PathVariable 사용시 주의점 현재 프로젝트에서 Spring REST API 형식을 사용하고 있다. 아직 @PathVariable에 관한 오류는 나지 않지만 돌아다니다 보니 사용시 주의점에 관한 글이 있어서 얼른 수정했다. 내용은 일반적으로 @PathVariable 사용시 (나도 이렇게 사용중) @RequestMapping(value = "/user/{user_id}", method = RequestMethod.GET)public ResultVO getUserInfo(@PathVariable String user_id){...return resultVO;}우선은 위의 코드처럼 사용시 오류없이 잘 실행이 되지만컴파일러 옵션을 변경한 상태에서 컴파일&실행을 하게되면 오류가 난다고 한다. 오류 내용은..

Programming/Spring 2015.01.09