Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何传递空数据类型?_Java_.net_Database_Null - Fatal编程技术网

Java 如何传递空数据类型?

Java 如何传递空数据类型?,java,.net,database,null,Java,.net,Database,Null,将无数据的值传递到数据库时,NULL的数据类型是什么?NULL是“未定义”的值。因此,数据库中的任何类型都可以是“未定义的”,因为它是列的属性:特定列的行的值可以是“未定义的”,这意味着它是“NULL”,无论类型是什么。只要该列可为空 我认为DBNULL或NULL是一种特殊类型。有没有NULL的数据类型。NULL本身意味着缺少数据。当没有数据时,它怎么能有类型呢?通常NULL是它自己的数据类型-1的类型是“整数”,NULL的类型是“NULL”我认为这个问题本身是错误的。如果NULL有一个数据类型

将无数据的值传递到数据库时,
NULL的数据类型是什么?

NULL是“未定义”的值。因此,数据库中的任何类型都可以是“未定义的”,因为它是列的属性:特定列的行的值可以是“未定义的”,这意味着它是“NULL”,无论类型是什么。只要该列可为空

我认为DBNULL或NULL是一种特殊类型。

没有NULL的数据类型。NULL本身意味着缺少数据。当没有数据时,它怎么能有类型呢?

通常NULL是它自己的数据类型-1的类型是“整数”,NULL的类型是“NULL”

我认为这个问题本身是错误的。如果NULL有一个数据类型,那么您不会被迫在其默认值之外的每个实例化中更改它。例如,当您将其创建为角色,然后将其强制为对象的值时

NULL==NULL


仅此而已。

NULL
可以强制转换(转换)为任何数据类型,但是与
NULL
的数据类型比较总是返回
FALSE
NULL
的数据类型与
0
的数据类型一样没有意义:它可以是
整数
浮点
VARCHAR
。您不能仅从值来区分它

NULL
在几乎所有数据类型域中都是合法值,这意味着没有实际值

在某些
RDBMS
的上下文之外讨论数据类型也是毫无意义的

例如,在
SQLite
中,数据类型是值绑定的,而不是列绑定的,
NULL
本身就是一类数据类型

在Oracle中,数据类型的定义更加严格。例如,此查询可以工作:

SELECT  COALESCE(dt, i)
FROM    (
        SELECT  CAST(NULL AS DATE) AS dt, CAST(NULL AS DATE) i
        FROM    dual
        ) q
这并不是:

SELECT  COALESCE(dt, i)
FROM    (
        SELECT  CAST(NULL AS DATE) AS dt, CAST(NULL AS NUMBER) i
        FROM    dual
        ) q
,因为后一个查询返回两列不同的数据类型,它们的值都为
NULL
COALESCE
要求两个参数具有相同的数据类型

最好说任何数据类型的
NULL
都可以隐式转换为另一个数据类型的
NULL

例如,如果
VARCHAR
的值为
0
,则可以将其隐式转换为
整数,但如果其值为
“某些字符串”
,则不能将其转换为


对于
NULL
,任何数据类型都可以隐式转换为任何其他数据类型,只要它们之间允许隐式转换。

NULL在SQL中没有特定的数据类型。任何可为null的列或变量都可以包含null。Null永远不等于或不等于任何东西。您可以将一个包含null的变量强制转换为另一个变量并获取null,例如:

declare @a integer
set @a = null
select convert (float, @a)

----------------------
NULL

(1 row(s) affected)

实际上,在PowerShell中,比较$null-eq$null会得到False。
另外,-not$null将为True,所以这里它似乎被表示为False。我知道,PowerShell可能不是一个很好的例子,但是:)

在SQL中,NULL是一个可以应用于任何SQL类型的“标记”(非值)。因此它与类型正交。

通常SQL
NULL
没有与其关联的类型。但也有例外。数据库引擎postgresql和derby(javadb)要求null具有类型。换句话说,它们不支持非类型化null。因此像
NULL为NULL这样的查询条件可能会失败。这里,
NULL
必须指定一个类型,即处理
NULL
值的目标的预期类型。在这种情况下,这看起来很愚蠢,因为没有目标,这可能会适得其反

看到和


请为这些问题投票,以便奇数数据库引擎改变它们的方式。

Prabhahar,每种类型的数据库驱动程序都有自己的处理方式
NULL
。您必须检查特定数据库的驱动程序API

例如,如果您正在使用Java Derby数据库,只需传入Java本机类型null,如所示:

以下是另一个
null
示例:


是的,这就是我加入公司时必须学习的东西。NULL是不存在的,它不是一个类型,但是它可以用类型来表示(即.NET framework使用DBNull.Value作为NULL值的表示)。是的,我同意。在任何技术中,你都必须有某种东西来代表它。(你不能一无所有地代表一无所有)。但作为一个概念,NULL表示“无”。真的@Hemant,虽然这是一个很好的空数据库定义,但抽象概念由实际值表示。假设Prabhahar希望将某些编程语言中的值传递给数据库,那么将有一个关联的数据库驱动程序API,该API将实现传递NULL.-1,因为与NULL的比较将导致NULL而不是FALSE。在PL/SQL中的IF语句中,NULL被视为FALSE,但NOT NULL是NULL,NOT true WHERE子句等也是如此。冒着相反的风险,大多数完全支持NULL的平台会将NULL返回到比较“NULL==NULL”,事实上不是true:)这使得上述比较无效,因为与NULL的任何比较都是无意义的,除了用…检查它是否为空这让我笑了,我明白你在说什么。记下每天学习新东西的记录。
insert into T_AUTHOR (
  ID, FIRST_NAME, LAST_NAME, 
  DATE_OF_BIRTH, YEAR_OF_BIRTH, ADDRESS) 
VALUES ( 
  1000, 'Lukas', 'Eder', 
  '1981-07-10', null, null 
);
pst.setNull(4, java.sql.Types.INTEGER);