使用hu-tool的BeanUtil工具类将JfinalRecord转为Bean

使用hu-tool的BeanUtil工具类将Jfinal Record转为JavaBean

hu-tool是一个工具类库,BeanUtil是该工具类库中的一个工具.

JFinal 提供了Db工具类进行数据库查询,查询结果通常是一个Record,使用使用BeanUtil.toBean方法将Record转为JavaBean,BeanUtil.toBean方法会自动处理数据库自字段的驼峰,测试代码如下

新建一个JavaBean

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
 * ocr系统扩展用户Id DO
 *
 * @author litongjava
 */
@SuppressWarnings("serial")
@TableName("external_uid")
@KeySequence("external_uid_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。@Data@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OcrSystemExternalUidDO extends BaseDO {
  /**
   * ocr系统uid
   */
  @TableId(type = IdType.AUTO)
  private Integer externalUid;
  /**
   * ocr系统子用户名
   */
  private String thisUid;
}

测试转换代码

import cn.hutool.core.bean.BeanUtil;
import com.jfinal.plugin.activerecord.Record;
import org.junit.jupiter.api.Test;
/**
 * @author litongjava@qq.com on 2023/2/21 9:10
 */
class OcrSystemExternalUidDaoTest {
  @Test  public void test1() {
    //1.默认record数据
    Record record = new Record();
    record.put("external_uid", "1");
    record.put("this_uid", "1001");
    //2.使用工具类进行转换
    OcrSystemExternalUidDO t = BeanUtil.toBean(record.toMap(), OcrSystemExternalUidDO.class);
    //3.输出转换结果,
    System.out.println(t);
    //OcrSystemExternalUidDO(super=BaseDO(createTime=null, updateTime=null, creator=null, updater=null, deleted=null), externalUid=1, thisUid=1001)
  }
}

Record的值有可能为null,封装一个工具类进行判断

  /**
   * Record转为Map
   * @param record
   * @param clazz
   * @param <T>
   * @return
   */
  public static <T> T toBean(Record record, Class<T> clazz) {
    if(record==null){
      return null;
    }else{
      return BeanUtil.toBean(record.toMap(), clazz);
    }
  }


评论区

热门分享

扫码入社