컨트롤러는 요청uri를 등록하고 요청에 따른 처리를 하는용도로 사용합니다

 

 

@RestController
rest방식의 데이터처리를위해 존재하는 컨트롤러임을 선언하는 어노테이션입니다
기존컨트롤러는 냅두고 ajax전용컨트롤러를 만들때 사용
데이터 자체를 반환합니다. 이때 주로 사용하는것은 단순문자열(텍스트), json, xml

 

@Controller에서 jsp페이지를 만들지않고 리턴할때 데이터으로 하고싶을때!

뷰JSP페이지없이! 데이터전달!  Ajax요청시 사용!

 @RequestMapping("/uri")
 public @ResponseBody String getData(HttpServletResponse resp){
  return "안녕,SpringMVC~!";
 }

 

ajax사용이유 현재페이지에 없는 데이터를 서버측에서 비동기적으로 가져오기위해서

 

한글 깨져서 나올때 한글처리방법

※ @ResponseBody, @RestController 한글처리
  ===> servlet-context.xml의  <annotation-driven> 안에 <message-converters> 추가

  <annotation-driven>
    <!-- @ResponseBody 한글처리 -->
    <message-converters>
       <beans:bean
           class="org.springframework.http.converter.StringHttpMessageConverter">
          <beans:property name="supportedMediaTypes">
             <beans:value>text/html;charset=UTF-8</beans:value>
          </beans:property>   
       </beans:bean>
   </message-converters>  
  </annotation-driven>

※ JSON출력이 안될때
 ===> pom.xml에 JSON Converter추가

  <!-- JSON Converter -->
  <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.5.4</version>
  </dependency>

controller, view : servlest-context.xml에서 처리
persistence,service  : root-context.xml에서 처리

 


 

 

'Java , sevlet' 카테고리의 다른 글

sql like 연산자 mybatis사용  (0) 2016.11.16
addFlashAttribute와 addAttribute 차이  (0) 2016.11.16
SQL Oracle 연결이 안될때  (1) 2016.11.09
ibatis와 Mybatis 비교  (0) 2016.11.08


<LIKE연산자>


조건식 구성 : 컬럼명   LIKE  'pattern'

※패턴의 횟수를 표현하는 예약문자(와일드카드)
  % :  0~무한대의 문자를 대체
  _ : 단 1개의 문자를 대체

----> 와일드카드 없이 비교했을때는  컬럼명 = '데이터' 와  다르지 않다!!
      예)   ename='MARTIN'
          ename like 'MARTIN'

   'M%'  ---> M으로 시작되는 문자들
   '%M'  ---> M으로 끝나는 문자들
   'M_ _ _A'  ----> 전체 문자길이가 5이고 첫글자 'M' 마지막글자 'A'로 끝나는 문자들.

 

select * form table where content like '검색%'  검색으로시작되는 모든값
select * form table where content like '%검색'  검색으로 끝나는 모든값
select * form table where content like '%검색%' 검색이 들어있는 모든값


 문자데이터: a, ab, ad, abc, abbbbbbbbb, bababa
 
 like 'a%'  ---> a, ab, ad, abc, abbbbbbbbb
 like 'a_'  ---> ab, ad
 like 'a__' ---> abc
 like '%a'  ---> a, bababa
 like '__c' ---> abc
 like '%a%' ---> a, ab, ad, abc, abbbbbbbbb, bababa

mybatis에서 파라미터값을 받아서 like구문을 사용할때 #{}를 %%안에 사용할수없다!

따라서 where title like '%'||#{keyword}||'%' 이런 형식으로 || 연산자를 사용하면 된다.

 
예시) 이름이 'A'로 시작하는 사원의 사원번호, 사원명, 급여를 출력하시오.
   select empno, ename, sal
   from emp
   where ename like 'A%';

 

EMPNO ENAME                       SAL
----- -------------------- ----------
 7499 ALLEN                      1600
 7876 ADAMS                      1100
   
    
예시) 이름이 'S'로 끝나는 사원의 사원번호, 사원명, 급여를 출력하시오.
   select empno, ename, sal
   from emp
   where ename like '%S';

EMPNO ENAME                       SAL
----- -------------------- ----------
 7566 JONES                      2975
 7876 ADAMS                      1100
 7900 JAMES                       950   
     
    
예시) 이름에 'A'문자가 들어가는 사원의 사원번호, 사원명, 급여를 출력하시오.
   select empno, ename, sal
   from emp
   where ename like '%A%';

EMPNO ENAME                       SAL
----- -------------------- ----------
 7499 ALLEN                      1600
 7521 WARD                       1250
 7654 MARTIN                     1250
 7698 BLAKE                      2850
 7782 CLARK                      2450
 7876 ADAMS                      1100
 7900 JAMES                       950 
     
예시) 이름의 세번째 문자에 'A'가 들어가는 사원의 사원번호, 사원명, 급여를 출력.
   select empno, ename, sal
   from emp
   where ename like '__A%';

 EMPNO ENAME                       SAL
------ -------------------- ----------
  7698 BLAKE                      2850
  7782 CLARK                      2450
  7876 ADAMS                      1100
   
    
예시) 이름에 '%'가 들어가는 사원의 사원번호, 사원명, 급여를 출력하시오.
 샘플입력- insert into emp (empno, ename, sal) values (8000,'홍%길동',3000);

   select empno, ename, sal
   from emp
   where ename like '%%%';
  -----> 전체행이 조회!!
    
※참고
 ESCAPE옵션: '%' 또는 '_' 를 와일드 카드가 아닌 문자의 의미를 가지고자 할때 사용.
       ------> 컬럼명 LIKE '패턴' ESCAPE '부호';    
          예)      컬럼명 LIKE  '%\%%'   ESCAPE  '\';
             ------> 이스케이프에 정의된 문자뒤에 오는 것은 문자로 해석하겠다!!

   select empno, ename, sal
   from emp
   where ename like '%\%%' ESCAPE  '\';
  
 EMPNO ENAME                       SAL
------ -------------------- ----------
  8000 홍%길동                              3000  
  
=======================================================================
예시) 커미션을 300 또는 500 또는 1400 받는 사원의 사원번호, 사원명, 부서번호, 커미션을
     출력하시오.
    
   select empno, ename, deptno, comm
   from emp
   where  comm = 300  OR  comm = 1400  OR comm = 500; 
    
EMPNO ENAME                    DEPTNO       COMM
----- -------------------- ---------- ----------
 7499 ALLEN                        30        300
 7521 WARD                         30        500
 7654 MARTIN                       30       1400

'Java , sevlet' 카테고리의 다른 글

@RestController  (0) 2016.11.18
addFlashAttribute와 addAttribute 차이  (0) 2016.11.16
SQL Oracle 연결이 안될때  (1) 2016.11.09
ibatis와 Mybatis 비교  (0) 2016.11.08

  RedirectAttributes클래스의 addFlashAttribute메소드 : 뷰에 전달할 데이터 표현
  RedirectAttributes클래스의 addAttribute메소드 : 컨트롤러에 전달할 데이터 표현

 

  두 메소드가 비슷해보이지만 다르다!

 

  addFlashAttribute 메소드를 사용하는경우에는 jsp페이지에서${}를 사용하게되면

화면에 표시는 되지만 이 jsp페이지가 컨트롤러를 경유해서 오는 페이지일경우 컨트롤러에서는 값이 나타나지않고 화면에만 나온다.

 

 

'Java , sevlet' 카테고리의 다른 글

@RestController  (0) 2016.11.18
sql like 연산자 mybatis사용  (0) 2016.11.16
SQL Oracle 연결이 안될때  (1) 2016.11.09
ibatis와 Mybatis 비교  (0) 2016.11.08


'Creating connections to New Oracle.' has encountered a problem.

Could not connect to New Oracle



오류가 나면서 연결이 안된다!



제어판\시스템 및 보안\관리 도구\시스템에 들어간다






OracleServieXE 가 시작됨이 안떠있으면 마우스오른쪽버튼을 눌러서 시작해준다



'Java , sevlet' 카테고리의 다른 글

@RestController  (0) 2016.11.18
sql like 연산자 mybatis사용  (0) 2016.11.16
addFlashAttribute와 addAttribute 차이  (0) 2016.11.16
ibatis와 Mybatis 비교  (0) 2016.11.08

VO(value object) = DTO(Data Transfer Object) = beans



ibatis , Mybatis 모두 기본적으로 PreparedStatement사용하고 ResultSet이용해서 처리한다

PreparedStatement : 미리 SQL쿼리문을 미리 생성해놓고 바인드변수 사용 (장점: SQL인젝션공격 예방)

ibatis에서Mybatis로 발전했다.


ibatis에서는 개발자가 모든 SQL문을 XML로 작성하고 SQL문을 사용하는 DAO를 작성했음

Mybatis는 애노테이션 지원, 인터페이스와 애노테이션통해서 SQL문을 설정하고 처리하는 형태로 발전

Mybatis 에서의 SQL사용방법
▶XML만 사용해서 SQL문을 설정,DAO에서는 XML을 찾아서 실행하는 코드를 작성
-장점 : SQL문은 별도의 XML로 작성되기 때문에 SQL문의 수정이나 유지보수에 적합
-단점 : 개발시 코드의 양이 많아지고 , 복잡성이증가

▶애노테이션과 인터페이스만을 이용해서 SQL문을 설정
-장점 : 별도의 DAO없이도 개발이 가능하기 때문에 생산성이 증가
-단점 : SQL문을 애노테이션으로 작성하므로, 매번 수정이 일어나는경우 다시컴파일해야한다

▶인터페이스와 XML로 작성된 SQL문을활용
-장점 :간단한 sQL문은 애노테이션으로, 복잡한 SQL문은 XML로 처리하므로 상황에따라 유연하게처리
-단점 : 개발자에 따라 개발방식의 차이가 있을 수있기 때문에 , 유지보수가 중요한 프로젝트의 경우 부적합하다.

 

 

<insert id="insert" parameterType="MemberVO">
     #{userid}  ==>getUserid()
</insert>
<insert id="insert" parameterType="java.util.Map">
    #{userid}   ==>key값 userid
</insert>
도메인 어떠한 상품 나뉘어질수있는 서비스단위 명사,대명사
spring에서 interface사용하는이유 외부에서 변수값등을 변경하기위해서

'Java , sevlet' 카테고리의 다른 글

@RestController  (0) 2016.11.18
sql like 연산자 mybatis사용  (0) 2016.11.16
addFlashAttribute와 addAttribute 차이  (0) 2016.11.16
SQL Oracle 연결이 안될때  (1) 2016.11.09

+ Recent posts