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

在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类,清楚各部分作用。然后有针对的更改。

你可能感兴趣的:(greendao,datetime)