728x90
반응형
728x90
반응형

 

Spring Mabits의 CDATA 사용하기

 

 

CDATA란?

  • Character DATA의 줄임말
  • 아래 4가지 경우일때 사용
  • <    /    [ &lt]
  • >    /    [&gt]
  • &    /    [&amp]
  • "    /    [quot]

 

 

CDATA사용방법

1안

<select id = "selectTest" resultMap = "testMap">

    <![CDATA[

SELECT * FROM TEST WHERE COL > 5

    ]]>

<select>

 

2안

<select id = "selectTest" resultMap = "testMap">

SELECT * FROM TEST WHERE COL <![CDATA[ > ]]> 5

<select>

 

 

 

728x90
반응형
728x90
반응형

 

마이바티스 프로시저 호출하기

 

스프링 Mybatis 프로시저 호출하기(마이바티스.xml)

 

생성된 프로시저 확인하기(DB에서 생성된 프로시저)

 

 

728x90
반응형
728x90
반응형

 

 

Session 우선순위 및 시간 설정 변경하기

 

Session 우선순위

  1. 세션객체에 직접 setMaxInactiveInterval(int interval) 시간을 지정한 경우
  2. [Project] WEB-INF/web.xml 시간을 지정한 경우
  3. [WAS] conf/web.xml 시간을 지정한 경우

 

예제

1. Controller에서 session 객체에 시간 지정 / 초

2. WEB-INF/web.xml 시간 지정(Spring) / 분

3. conf/web.xml 시간 지정(Tomcat) / 분

 

 

 

728x90
반응형
728x90
반응형

 

크로스도메인 이란?

- > 크로스 도메인은 쉽게 말해서 서로 다른 도메인 간의 호출이다.

ex) 나의 서버가 www.naver.com으로으로 가정한 후

www.naver.com  -> www.naver.com/1  (가능)

                       -> www.daum.net/1   (불가능) 

 

 

크로스도메인 이슈 해결방안

/WEB-INF/web.xml 파일에 코드추가

 

<filter>

    <filter-name>CorsFilter</Filter-name>

    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

    <init-param>

        <param-name>cors.allowed.origins</param-name>

        <param-value>*</param-value>

    </init-param>

</filter>

<filter-mapping>

    <filter-name>CorsFilter</filter-name>

    <url-pattern>*</url-pattern>

</filter-mapping>

 

 

 

728x90
반응형
728x90
반응형

 

Spring에서 Oracle DB를 사용할경우 SID와 서비스 이름에 접속방법에 대해 알아보기

 

주의 : SID와 서비스이름일 경우 설정 값이 다름

 

SID 접속방법

jdbc:oracle:thin:@DB서버IP:port:sid

서비스 이름 접속방법

jdbc:oracle:thin:@DB서버IP:port/서비스이름

 

 

 

수정이 필요하거나 내용이 추가 될 부분은 댓글을 남겨주시면 반영하겠습니다.

Last modified date : 21.01.10

 

728x90
반응형
728x90
반응형

 

Spring에서 Mabits의 SelectKey에 대해 알아보기

 

SQL 수행작업 중

1) INSERT 이전에 생성할 값(랜덤인덱스 값등)

2) INSERT 이후에 알 수 있는 값(랜덤인덱스 값등)

1번과 2번에 필요한 경우가 생긴다.

 

2번 같은 경우 결과값을 받은 후 다시 쿼리를 실행하는 방법이 있으나,

불필요한 여러번의 DB 입출력은 시간이 느려진다는 단점이 있다.

그때, selectKey를 사용하여 바로 적용할 수 있다.

마이바티스, 아이바티스 둘다 적용이 가능하다.

 

selectKey는 DB에 명령을 한번만 보내며, 우선 입력한 값의 결과값을 다음 쿼리로 바로 return 시켜주는 것이다.

 

마이바티스 한글 번영 문서 : http://www.mybatis.org/mybatis-3/ko/

 

MyBatis – 마이바티스 3 | 소개

마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다.

mybatis.org

마이바티스 Blog :  http://blog.mybatis.org/

 

The MyBatis Blog

A blog about the the MyBatis data mapper framework.

blog.mybatis.org

 

 

SelectKey 엘리먼트 속성

 

selectKey 적용 전 비교 테이블 데이터 확인하기

ex) SELECT * FROM TEST

 

 

 

SelectKey BEFORE 적용하기

 

결과 확인하기

 

에러시 참고할 부분

1. DAO클래스일 경우 XML의 쿼리가 INSERT 혹은 UPDATE를 맞게 셋팅했는지

2. 호출 XML파일의 네임스페이스가 맞는지 확인하기

3. Mapper인터페이스 일 경우 XML의 id 확인하기

 

 

SelectKey AFTER 적용하기

 

결과 확인하기

1) DB값 들어갔는지

 

2) Controller(JAVA)에서 AFTER로 보낸 값을 받았는지 확인하기

 

에러시 참고할 부분

1) XML에서 INSERT 혹은 UPDATE 구문에서 사용한 ParameterType으로 값이 들어감

- > VO, MAP등 보냈던 ParameterType으로 들어가므로 VO같은경우 afterCnt라는 변수가 있어야함

 

 

 

728x90
반응형
728x90
반응형

 

Spring Model, ModelMap, ModelAndView 차이점

 

Model, ModelMap Vs ModelAndView 차이점

  • 데이터만 저장한다 vs 데이터와 이동하고자 하는 View Page를 같이 저장한다

 

 

Model, ModelMap 공통점

  • model.addAttribute("변수명");
  • modelMap.addAttribute("변수명");
  • 둘 다 addAttribute를 사용함
  • Model or ModelMap에 데이터만 저장 후 View에서 사용목적

 

Model, ModelMap 차이점

  • Model - 인터페이스
  • ModelMap - 클래스

 

Java Controller

1
2
3
4
5
6
7
8
9
10
11
12
13
 
@RequestMapping(value = "/test.do")
public String test(HttpServletRequest request, Model model, ModelMap modelMap){
        
    String modelStr = "Model Test";
    String modelMapStr = "ModelMap Test";
    
    model.addAttribute("modelVar", modelStr);
    model.addAttribute("modelMapVar", modelMapStr);
        
    return "temp/test";
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

JSP

1
2
3
4
5
<body>
    Model 저장한 값 : <input type="text" value="${modelVar }"/><br/>
    ModelMap 저장한 값 : <input type="text" value="${modelMapVar }"/>
</body>
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

Web Page

 

 

ModelAndView

  • addObject를 통해 데이터를 저장
  • setViewName을 통해 이동하고자 하는 View를 저장
  • 메소드 안에서 ModelAndView mv = new ModelAndView(); 
  • return type ModelAndView 

 

Java Controller

1
2
3
4
5
6
7
8
9
10
11
@RequestMapping(value = "/test.do")
public ModelAndView test(HttpServletRequest request, ModelAndView mv){
        
    String modelAndViewStr = "ModelAndView Test";
    
    mv.addObject("modelAndViewVar", modelAndViewStr);
    mv.setViewName("temp/test");
        
    return mv;
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

JSP

1
2
3
4
<body>
    ModelAndView 저장한 값 : <input type="text" value="${modelAndViewVar }"/><br/>
</body>
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

Web Page

728x90
반응형
728x90
반응형

 

스프링에서 세션 사용하기

 

 

1. 세션에 Data 저장하기

session.setAttribute("저장 하고자 하는 변수이름", 저장변수값);

Java Controller

1
2
3
4
5
6
7
8
9
10
11
12
@RequestMapping(value = "/test.do")
public ModelAndView test(HttpServletRequest request) throws Exception {
        
    HttpSession session = request.getSession();
    String name = "세션저장하기";
    session.setAttribute("ssVar", name);
 
    ModelAndView mv = new ModelAndView();
    mv.setViewName("/test/test");
 
    return mv;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

JSP

1
2
3
4
<body>
    <input type="text" value="${ssVar }"/>
</body>
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

2. 세션에 저장된 Data 가져오기

session.getAttribute("저장한 변수 이름");

Java Controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@RequestMapping(value = "/test2.do")
public ModelAndView test2(HttpServletRequest request) throws Exception {
        
    ModelAndView mv = new ModelAndView();
        
    HttpSession session = request.getSession();
    String name = (String) session.getAttribute("ssVar");
        
    System.out.println("==============================");
    System.out.println("세션에 저장 되 있는 변수 : "+name);
    System.out.println("==============================");
        
    name = "세션값 변경";
    session.setAttribute("ssVar", name);
    mv.setViewName("/test/test");
        
    return mv;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

Java Console 확인

 

JSP

1
2
3
4
<body>
    <input type="text" value="${ssVar }"/>
</body>
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

 3. 세션 초기화 하기

session.invalidate();

728x90
반응형

+ Recent posts