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