【问题标题】:ORMLite insert Date with SQLORMLite 用 SQL 插入日期
【发布时间】:2012-11-06 09:57:10
【问题描述】:

我已经在我的android项目中建立了一个ORMLite数据库。

我有一个名为 RbFehler 的类,其中包含以下字段:

@DatabaseField(columnName = "DATUM_LA", dataType = DataType.DATE_STRING,
    format = "yyyy-MM-dd HH:mm:ss")
public Date datum_la;

我有一些逻辑可以从存储 SQL 插入语句的文本文件中导入数据。一行看起来像这样:

INSERT INTO RbFehler (KATALOGART,SYST,SUBSYST,KOMP,BAUTEIL,BEZ,PSYST,PSUBSYST,
    PKOMP,PBAUTEIL,INAKTIV,GELOESCHT,DATUM_LA)
    VALUES ('VW','4F5AB211','0600','4F5AA900','0010','Venturirohr','4F5AB211',
        '0600','4F5AA900','0000','0','0',2012-06-04 08:08:08);

但是当我打电话时,我总是得到以下错误:

dao.execute RawNoArgs(line);

java.lang.Illegal Argument Exception: Field class java.sql.Date for field
    Field Type:name=datum_la,class=RbFehler is not valid for data
    persister com.j256.ormlite.field.types.DateStringType@416ed260

我还尝试在 SQL 语句中的日期周围添加“'”,但得到相同的错误。如果我从 SQL 中删除日期并且课程一切正常。

谁能告诉我我做错了什么?我只发现了这样的问题:ormlite read Date as 'yyyy-MM-dd'

【问题讨论】:

    标签: android date-format ormlite sql-insert


    【解决方案1】:

    我想通了:

    确保在 Java 中使用正确的 Date 对象:

    @DatabaseField(columnName = "DATUM_LA", dataType = DataType.DATE_STRING,
     format = "yyyy-MM-dd HH:mm:ss")
    public java.util.Date datum_la;
    

    而不是java.sql.Date

    【讨论】:

    • 顺便说一句,我在此处改进了 ORMLite 错误消息,为数据类型提供了 expected 类。这应该对将来的某个人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多