반응형
이 방법의 장점은
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);
}
반응형
댓글