본문 바로가기
Spring MVC

[Spring MVC] Mybatis Dynamic SQL 작성(Insert, Update)

by SUN5066 2020. 10. 19.
반응형

이 방법의 장점은

oralce, mysql 등

해당 DMBS의 코드문법을 하나하나 적을 필요없이

자동으로 변경해줌

 

<Dynamic SQL>
XML 사용하지 않는 mybatis SQL Query Builder 사용하기
mybatis 3.4 이상에서 새로 작성된 SQL query Builder 를 사용하여
xml 없이 mybatis DB mapper 구현

sql 패키지에 클래스 생성

public class BBsSQL {
    public String bbs_insert() {
        SQL sql = new SQL();
        sql.INSERT_INTO("tbl_bbs");
	sql.INTO_COLUMNS("b_seq").INTO_VALUES("seq_bbs.NEXTVAL");
        sql.INTO_COLUMNS("b_date").INTO_VALUES("#{b_date}");
        sql.INTO_COLUMNS("b_time").INTO_VALUES("#{b_time}");
        sql.INTO_COLUMNS("b_writer").INTO_VALUES("#{b_writer}");
        sql.INTO_COLUMNS("b_subject").INTO_VALUES("#{b_subject}");
        sql.INTO_COLUMNS("b_content").INTO_VALUES("#{b_content}");
        return sql.toString();
    }

    /**
     * SQL 클래스를 사용하여 xml 대신 Java Code 방식으로 SQL 작성
     * */
    public String bbs_update() {
        SQL sql = new SQL();
        sql.UPDATE("tbl_bbs");
        sql.SET("b_data = #{b_date}");
        sql.SET("b_time = #{b_time}");
        sql.SET("b_writer = #{b_writer}");
        sql.SET("b_subject = #{b_subject}");
        sql.SET("b_content = #{b_content}");
        sql.WHERE("b_seq = #{b_seq}");
        return sql.toString();
    }

 

BBsSQL 클래스에 정의된 bbs_insert method를 호출하여

SQL문을 생성하고, 여기에 코드를 추가하라

public interface BBsDao {
    @Select("SELECT * FROM tbl_bbs")
    public List<BBsVO> selectAll();

    @Select("SELECT * FROM tbl_bbs WHERE b_seq = #{seq}")
    public BBsVO findBySeq(@Param("seq") long seq);

    @InsertProvider(type = BBsSQL.class, method = "bbs_insert")
    public int insert(BBsVO bbsVO);

    @UpdateProvider(type = BBsSQL.class, method = "bbs_update")
    public int update(BBsVO bbsVO);

    @Select("DELETE FROM tbl_bbs WHERE b_seq = #{seq}")
    public int delete(long seq);

}

 

반응형

댓글