【问题标题】:JDBC Query returns nullJDBC 查询返回 null
【发布时间】:2013-08-09 22:04:50
【问题描述】:

我正在使用 JDBC 创建一个数据库,其中包含表 KontenHAUPTKONTO_1。两者都有一个名为 id 的整数列

这些是我创建和填充表的 SQL 语句:

CREATE TABLE "Konten"("id" "integer","typ" "string", "name" "string","ausgleichsDatum" "integer","wechselDatum" "integer", "beschreibung" "string" );

CREATE TABLE "HAUPTKONTO_1"("id" "integer","typ" "string","datum" "datetime","beschreibung" "string","wert" "numeric","summe" "integer" )

INSERT INTO Konten VALUES ('1', 'HAUPTKONTO', 'Mein Bankkontolein','0','0','bei der 0815 bank für mein Geld')

INSERT INTO Konten VALUES ('2', 'KONTO', 'Mein Bankkontolein','0','0','bei der 0815 bank für mein Geld')

INSERT INTO HAUPTKONTO_1 values( '1 ' , ' BUCHUNG ' , ' 01.01.2001 ' , ' meine erste Transaktion ' , ' 1 ' , ' 1 ' ) 

INSERT INTO HAUPTKONTO_1 values( '2 ' , ' BUCHUNG ' , ' 01.01.2002 ' , ' meine zweite Transaktion ' , ' 3 ' , ' 4 ' ) 

我正在尝试运行以下查询:

select * from HAUPTKONTO_1 WHERE id ='1'

select * from HAUPTKONTO_1 WHERE typ ='BUCHUNG'

select * from HAUPTKONTO_1 WHERE typ  like 'BUCHUNG'

使用

dv.getStatement().executeQuery(befehl); 

但我没有得到任何结果。

select * from HAUPTKONTO_1

select * from Konten WHERE id ='1'

这两个查询没有问题。

SQLite Databrowser 显示同样的问题:

它适用于 Firefox 中的 SQLite 管理器。

【问题讨论】:

  • 这是一个英语网站。顺便说一句:'1' 是字符串文字,1 是 SQL 中的数字。不要将苹果与橙子进行比较。 where id = '1' 将数字与字符串进行比较。尽管它可能看起来有效,但它并不是一种好的编码风格(其他 DBMS 可能会限制更多)

标签: sqlite jdbc


【解决方案1】:

所有值周围都有空格; '1''1 '不一样:

INSERT INTO HAUPTKONTO_1 values( '1 ' , ' BUCHUNG ' , ' 01.01.2001 ' , ' meine erste Transaktion ' , ' 1 ' , ' 1 ' )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-02
    • 2013-04-28
    • 2019-06-14
    • 2020-01-07
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多