GreenDao的使用总结

GreenDao是一个帮组Android开发者简化数据库操作的一个工具

情景1:

当向数据库插入一个List的数据的时候:
例如以下的json串:examlist里面还嵌套了一个list

{
    "api": "exam_listByMacid",
    "data": {
        "action": "INSERT",
        "examList": [
            {
                "courseName": "语文",
                "endTime": "2019-08-07 16:00:00.0",
                "startTime": "2019-08-07 16:00:00.0",
                "teaList": [
                    {
                        "campusid": "19600,
                        "name": "李光",
                    },
                    {
                        "campusid": "19600,
                        "name": "孟欢",
                    }
                ]
            },
            {
                "courseName": "英语",
                "endTime": "2019-08-07 12:00:00.0",
                "startTime": "2019-08-07 12:00:00.0",
                "teaList": [
                    {
                        "campusid": "19600,
                        "name": "李光",
                    }
                ]
            }
        ]
    },
}

然后我们就需要通过@Convert(columnType = String.class, converter = Level_Converter.class)这个标签来将list存入数据

@Entity
public class User {
    @Id(autoincrement = true)//设置自增长
    private Long id;

    @Index(unique = true)//设置唯一性
    private String perNo;//人员编号

    private String name;//人员姓名

    private String sex;//人员姓名

//用到了这个Convert注解,表明它们的转换类,这样就可以转换成String保存到数据库中了
  @Convert(columnType = String.class, converter = Level_Converter.class)
    private List<JavaBean> levelReport; //实体类中list数据

 @Convert(columnType = String.class, converter = Temp_Converter.class)
    private TempReport maxTemp;//实体类套实体类
    
public class Level_Converter implements PropertyConverter<List<JavaBean>, String> {
    @Override
    public List<JavaBean> convertToEntityProperty(String databaseValue) {
        if (databaseValue == null) {
            return null;
        }
        // 先得获得这个,然后再typeToken.getType(),否则会异常
        TypeToken<List<JavaBean>> typeToken = new TypeToken<List<JavaBean>>(){};
        return new Gson().fromJson(databaseValue, typeToken.getType());
    }

    @Override
    public String convertToDatabaseValue(List<JavaBean> arrays) {
        if (arrays == null||arrays.size()==0) {
            return null;
        } else {
            String sb = new Gson().toJson(arrays);
            return sb;

        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值