본문 바로가기

JAVA/JAVA-Project

[스프링] 게시판 글쓴이 출력 시 일부 * 처리 21. 05. 14.

개요

게시판 목록에서 글쓴이는 글을 작성한 사람의 아이디로 표시했는데, 아이디 전부를 노출시키는 건 옳지 않다고 생각해서 끝 문자열 두 글자만 남기고 모두 *로 표시하도록 했다.

SQL LPAD 함수 사용

    LPAD(SUBSTR(WRITER, -2, 2), LENGTH(WRITER), '*') WRITER

 

BoardMapper.xml

게시글 목록을 조회하는 쿼리문에서 글쓴이를 의미하는 행 이름 앞에 LPAD 함수를 써주면 된다. 현재 나는 게시글 목록을 조회할 때 페이징 처리를 해 놓은 상태이다.

    <select id="getListWithPaging" resultType="site.levinni.domain.BoardVO">
        <![CDATA[
        WITH TMP AS (
            SELECT 
                /*+ INDEX_DESC(TBL_COUNSEL PK_COUNSEL)*/
                ROWNUM RN, TBL_COUNSEL.*
            FROM TBL_COUNSEL
            WHERE
        ]]>
        <include refid="cri"/>
        <![CDATA[
             BNO > 0
            AND ROWNUM <= #{pageNum} * #{amount}
            )
        SELECT BNO, CATEGORY, TITLE, CONTENT, LPAD(SUBSTR(WRITER, -2, 2), LENGTH(WRITER), '*') WRITER, REGDATE, REPLYCNT, HITCOUNT, SECRET
        FROM TMP
        WHERE RN > (#{pageNum} - 1) * #{amount}
        ]]>
    </select>

 

 

원하는 대로 잘 적용 되었다! 글쓴이를 아이디로 출력할지, 이름으로 출력할지 고민..