使用greendao写入datetime类型的一些总结

    xiaoxiao2023-10-20  158

    在greendao生成类中的代码写的是 JCTBpic.addDateProperty(“HCSJ”); 但是生成的文件夹中,写入HCSJ类型为integer 所以需要在生成的类中进行修改。

    项目需求为在db中是datetime类型,即2019-05-25 15:28:00.000这种形式 所以首先修改JCTBpic类中HCSJ字段为java.sql.Timestamp 类型 修改JCTBpicDao中的相关HCSJ字段的内容。

    1:Properties public final static Property HCSJ = new Property(10, Timestamp.class, “HCSJ”, false, “HCSJ”); 2:createTable(这里是创建db数据库的内容,保证了db数据库打开HCSJ字段为Datetime类型) ““HCSJ” DATETIME,” + // 10: HCSJ

    3:两个bindValues(写入数据的格式),datetime格式写入要用bindString

    Timestamp HCSJ = entity.getHCSJ(); if (HCSJ != null) { // stmt.bindLong(11, HCSJ.getTime()); stmt.bindString(11, “”+HCSJ); }

    以上保证了 写入为datetime类型,但是读取的时候会出现错误,所以仍需要进一步修改读取HCSJ的相关代码

    4:两个readEntity (1)cursor.isNull(offset + 10) ? null : Timestamp.valueOf(cursor.getString(offset + 10)) (2)entity.setHCSJ(cursor.isNull(offset + 10) ? null : Timestamp.valueOf (cursor.getString(offset + 10)));

    因为从数据库中取出的数据为String类型,而返回的数据类型为DateTime,所以需要调用函数,进行转化。

    以上,即可将datetime写入数据库,并进行读取。

    总结的话,要看class生成的java类和dao类,清楚各部分作用。然后有针对的更改。

    最新回复(0)