使用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); } }