Можно написать аннотацию сопоставления MyBatis в компоненте

#mybatis

#mybatis

Вопрос:

В MyBatis следует использовать так, слишком много кода, и он выглядит очень неэлегантно:

 @Mapper
public interface SeqMapper {

    @Select("select * FROM COMMON_SEQ WHERE APP_CODE = #{appCode} FOR UPDATE")
    @Results(id = "seqDOMap", value = {
            @Result(column = "APP_CODE", property = "appCode"),
            @Result(column = "SEQ", property = "seq"),
            @Result(column = "STEP", property = "step"),
            @Result(column = "SEQ_MAX", property = "seqMax"),
            @Result(column = "UPDATED_TIME", property = "updatedTime"),
            @Result(column = "BEFORE_UPDATED_TIME", property = "beforeUpdatedTime"),
            @Result(column = "RESET_TIME", property = "resetTime"),
    })
    SeqDO selectForUpdate(SeqDO seqDO);
  
 public class SeqDO {
    private Integer appCode;
    private Long seq;
    private Long step;
    private Long seqMax;
    private Date updatedTime;
    private Date beforeUpdatedTime;
    private Date resetTime;
  

Я бы использовал вот так, лаконично и красиво:

 public class SeqDO {

    @Result("APP_CODE")
    private Integer appCode;

    @Result("SEQ")
    private Long seq;

    @Result("STEP")
    private Long step;

    @Result("SEQ_MAX")
    private Long seqMax;

    @Result("UPDATED_TIME")
    private Date updatedTime;

    @Result("BEFORE_UPDATED_TIME")
    private Date beforeUpdatedTime;

    @Result("RESET_TIME")
    private Date resetTime;
  

Мой друг сказал, что можно использовать «as», чтобы он также соответствовал спецификации отказа от использования «select *», что нормально.

Если вы можете написать в поле, пожалуйста, ответьте.

 @Mapper
public interface SeqMapper {

    @Select("select "  
            "APP_CODE as appCode, "  
            "SEQ as seq, "  
            "STEP as step, "  
            "SEQ_MAX as seqMax, "  
            "UPDATED_TIME as updatedTime, "  
            "BEFORE_UPDATED_TIME as beforeUpdatedTime, "  
            "RESET_TIME as resetTime "  
            "FROM COMMON_SEQ WHERE APP_CODE = #{appCode} FOR UPDATE")
    SeqDO selectForUpdate(SeqDO seqDO);
  

(Следующий текст предназначен исключительно для подсчета количества слов 🙂

Я думаю, что в xml слишком много кода, поэтому я хочу использовать аннотации, а аннотации можно легко перенести в IDE. Если способ похож на следующий, переход будет более удобным, и имя поля не нужно снова изменять.

Ответ №1:

Мой друг сказал, что может использовать mybatis plus:

https://baomidou.com/en/guide/annotation.html#tablefield