'분류 전체보기'에 해당되는 글 223건

  1. 2018.05.24 Oracle Clob 긴문자열 MERGE 할때 java.sql.SQLRecoverableException: IO Error: Connection reset 발생할때
  2. 2017.09.13 JSON 문자열을 Map 으로 변환하기(Jackson 사용)
  3. 2017.03.07 이클립스 svn add to svn:ignore 가 비활성화 됐을때 2
  4. 2017.02.14 네이버맵 : clientId와 웹 서비스 url을 확인해주시기 바랍니다. 메시지가 나올때
  5. 2017.01.12 Table 자동 rowspan 처리 jQuery plugin

Oracle Clob 긴문자열 MERGE 할때 java.sql.SQLRecoverableException: IO Error: Connection reset 발생할때



짧은 문자열은 말짱하게 잘되는데 긴문자열 입력할때 뜬금없이  java.sql.SQLRecoverableException 이 발생했다.


구글 찾아보니 random 어쩌고 하던데 그거 따라 해도 계속 에러났다.


결론는 MERGE 구문을 안쓰는 것이다 -.-


계속 찾아보면 방법이 나올것 같기도 하지만 경험상 몇번 검색해서 잘 안되면 방법이 없는 경우가 많아서 그냥 포기하기로...


Mybatis 의 choose - when - otherwise 를 요런식으로 써서 최대한 MERGE 랑 비슷하게 변경하기로 했다. 쫌 많이 불편하지만 에러가 나는것을 어떻게 하나.


    <insert id="save">
        <selectKey keyProperty="seq" resultType="Integer" order="AFTER">
            <choose>
                <when test="seq==null">
                    SELECT S_SEQ.CURRVAL FROM DUAL
                </when>
                <otherwise>
                    SELECT ${seq} FROM DUAL
                </otherwise>
            </choose>
        </selectKey>
        
        <choose>
            <when test="seq==null">
                INSERT INTO TB_TBL (
                          SEQ
                        , COL1
                        , COL2
                ) VALUES (
                      S_SEQ.NEXTVAL
                    , #{col1}
                    , #{col2}
                )
            </when>
            <otherwise>
                UPDATE TB_TBL SET
                      COL1= #{col1}
                    , COL2= #{col2}
                WHERE SEQ = #{seq}
            </otherwise>
        </choose>
    </insert>



JSON 문자열을 Map 으로 변환하기(Jackson 사용)


https://gturnquist-quoters.cfapps.io/api/random 여기에 있는 JSON을 읽어서 Map 으로 변환하고 이것저것 더 해보기


브라우저에서 위 URL 로 접속해 보면 JSON 문자열을 다음과 같다.

{
   type: "success",
   value: {
      id: 10,
      quote: "Really loving Spring Boot, makes stand alone Spring apps easy."
   }
}



요것을 처리하는 예제 코드

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTest {
	public static void main(String[] args)
            throws JsonParseException, JsonMappingException, MalformedURLException, IOException {

        ObjectMapper mapper = new ObjectMapper();

        // URL 에 있는 JSON String 을 Map으로 변환하기
        Map<String, Object> data = mapper.readValue(
                     new URL("https://gturnquist-quoters.cfapps.io/api/random"), 
                     new TypeReference<Map<String,Object>>(){});




        // {type=success, value={id=9, quote=So easy it is to switch container in #springboot.}}
        System.out.println(data);

        // {id=9, quote=So easy it is to switch container in #springboot.}
        System.out.println(data.get("value"));






        // Map을 JSON String 으로 변환
        // {"type":"success","value":{"id":9,"quote":"So easy it is to switch container in #springboot."}}
        System.out.println(mapper.writeValueAsString(data));


        // Map을 보기쉬운 JSON String 으로 변환
        /*
           {
              "type" : "success",
              "value" : {
                "id" : 9,
                "quote" : "So easy it is to switch container in #springboot."
              }
           }
        */
        System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(data));
    }
}


이클립스 svn add to svn:ignore 가 비활성화 됐을때

버전관리에서 제외하고 싶은 폴더가 있어서 svn:ignore 처리 할려고 하는데 요렇게 disable 돼 있다면?


먼저 SVN Repositories View 에서 제외 시킬려는 디렉토리를 삭제한 다음(원격 레파지토리에서 삭제)



프로젝트를 업데이트 해서 삭제된 디렉토리를 반영시킨 다음에 다시 똑같은 디렉토리를 맨들면 그 디렉토리 옆에 ? 아이콘이 요렇게 뽓 뜬다.


이 상태에서 오른쪽 클릭해서 다시 가보면 아마 svn add to svn:ignore 메뉴가 활성화될 것이다~ 끝~







네이버맵 : clientId와 웹 서비스 url을 확인해주시기 바랍니다. 메시지가 나올때


문득 지도가 잘 안되는것 같기도 해서 간만에 네이버 오픈 api 사이트에 가보니 기존에 쓰던 key 방식 대신에 clientId 방식으로 바꾸라고 그래서 한번 바꿔 보았다.


기존에 등록해서 썼던 key 들은 어데 갔는지 잘 못찾겠고 뭔 애플리케이션을 등록하라길래 등록하고 지도 api를 사용할 web url을 입력하고 clientId를 발급받았다.


기존과는 다르게 사용할 url을 여러개 입력할수 있길래 개발서버 ip, 내 로컬서버 ip, 운영서버 도메인 요렇게 싹 등록하고 발급받은 다음에


지도 api 로드하는 js 를 https://openapi.map.naver.com/openapi/v2/maps.js?clientId=xxxxxxx 요렇게 바꿧다.(기존에 지도api 2.0버전을 사용하고 있었기 때문에)


시키는 데로 쪽바로 따라했지만 clientId와 웹 서비스 url을 확인해주시기 바랍니다. 이런 메시지가 자꾸 뜬다.


네이버 개발자센터 포럼이랑 구글에서 검색해 봤지만 URL 형태를 쪽바로 넣으시오! 라는 대답밖에 없었다.


나는 분명히 URL 을 쪽바로 입력했는데... 살살 짜증이 났다.


오만 이상한 URL 로 바꿔가면서 쌩난리를 쳐봤지만 안되서, 그냥 문득 뜬금없이 애플리케이션을 등록할때 입력했던 로컬, 개발, 운영 URL을 싹 지우고 하나만 입력하고 다시 해보니 문득 또 뜬금없이 잘 됐다. -.-



결론은 애플리케이션 웹 서비스 URL 을 하나만 등록해서 해결했다는 것이다.


그냥 마음편하게 개발서버용, 로컬서버용, 운영서버용 애플리케이션을 따로 등록해서 clientId 를 각각 따로 발급받아서 써야 한다~ 끝~

Table 자동 rowspan 처리 jQuery plugin



요렇게 Table에서 rowspan 을 처리해주는게 필요해서 관련 훌러그인이 있나 찾아 보다가 어떤 친절한 사람이 github에 만들어 놓은것을 발견하였다.


https://github.com/marcosesperon/jquery.rowspanizer.js


하지만 살짝 문제가 있었는데


어떤 특정컬럼에 대해 rowspan 할지 지정하는 옵션이 없어서 모든 td 들에 대해서 rowspan 을 해버리는게 쪼금 아쉬웠다.


나는 특정 컬럼에만 적용하고 싶었는데... 뭐 어쩌나~ 그 친절한 사람이 만들어 놓은 훌러그인을 살짝 수정했다.


본의 아니게 친절한 분의 깔끔한 소스코드에 나의 더러운 코드를 쪼금 넣었다.


jquery.rowspanizer.js


사용법은 기존대로 요렇게 하면 모든 컬럼에 대해서 적용하는 것이고

$("#target-table").rowspanizer();

1, 2, 5번째 컬럼에 대해서 적용하려면 요렇게 하면 된다.

$("#target-table").rowspanizer({
    cols : [0, 1, 4],
    vertical_align: "middle"
});


prev 1 2 3 4 5 ··· 45 next