티라미슈
14
2020-11-20 13:58:26
5
174

mybatis 공백이 들어가서 죽겠습니다 도와주세요ㅜ


mybatis 에서 like문 작성하는데 자꾸 공백이 들어갑니다. 도와주세요.


mybatis  -> where a.check_out LIKE  REPLACE('${check_out}%', ' ', '')


console - > REPLACE('2020-11 %', ' ', '')

쿼리문 콘솔창에 찍어서 SQL Tool에서 실행 시켜봤는데 Tool에서는 됩니다. 

근데 result로 넘오는게 아무것도 없다고 안넘어 옵니다. 구해주세요.

0
  • 답변 5

  • 대장군 쫄따구1
    2020-11-20 14:07:30

    .trim() ..?

  • 티라미슈
    14
    2020-11-20 14:35:02 작성 2020-11-20 14:36:44 수정됨

    console -> LIKE TRIM('2020-11 %')

    안됩니다. ㅜㅜ

    console -> CONCAT(TRIM('2020-11 '),'%')

    이건 SQL Tool에서 됩니다. 그런데  mybatis에서 실행 하면 안됩니다.  ㅠㅜ

    노란 부분에 자꾸 비칸이 들어갑니다.  

    spring service단에서도 replace 해서 넘기고 

    js에서도 replace해서 넘기는데  왜 안될까요? 

    그리고 #{check_out} 이렇게도 여러가지 넣어 봤는데 안됩니다. 

    미치겠습니다. 

  • 유리세계
    3k
    2020-11-20 14:48:42

    mybatis에서 트림을 거시는게 아니라...

    파라미터 자체에 trim을 건 것을 가져오셔야죠

    그리고 저 공백이 정말 공백이 아닐 수도 있죠

    저 공백을 복사해서 ' ' == ' ' 해보셨나요?

    \t \n \r 등등 공백의 종류는 다양합니다.

  • 티라미슈
    14
    2020-11-20 15:14:08

    아이고 선배님 감사합니다. 일단 공백이 맞구요. 

    getter에서 trim 하고 넘기니깐 됩니다.  그런데 왜 공백이 나올까요?

    js , 넘길때도 공백 없는거 확인 했는데... 참 

    아무튼 감사합니다. 

  • 대장군 쫄따구1
    2020-11-20 15:27:07 작성 2020-11-20 15:40:10 수정됨

    ==할꺼면 equals로 해보셈

    마이바티스 몰라서 잘 설명 못하겠고 대충 제가 아는코드 참고해보셈

    in servlet;

    String a=req.getParameter("a")==null?"":req.getParameter("a");

    if(a.equals(""){int aa=1; req.setAttrinute("aa",aa); RequestDispacher dis=req.getRequestDispatcher("path");

    dis.forward(req,res);} // 대충적음 이클립스서 스펠링체크

    -> in jsp -> <c:if test="${aa==1}"><script>alert("문제가 발생~ value a가 null~");</script></c:if> -> in servlet;

    ..

    dao.doSometing(a);

    reqeustDis .. or req.send .. or doSomting ..

    <hr>

    in dao;

    private PreparedStatement pstmt;

    private Connection con;

    ..

    singleton ~~ etc..

    ..

    public void close() // close문

    public Connection get //~등등하는 대충 컨트롤 c 컨트롤 v용 db connect문

    ..

    public int doSomting(String a){

    StringBuffer query=new StringBuffer();

    query.append("select*from table where a.check_out LIKE ?"); // %%안붙어도 자동으로 대충대는듯

    try{con=getConnect();

    pstmt=con.prepareStatement(query.toString());

    pstmt.setString(1,a.trim()); // if(datatype is char) {공백이 발생!;}

    ..

    }


    ..

    }


  • 로그인을 하시면 답변 을 등록할 수 있습니다.