gpt4 book ai didi

java - 确定一个词是否是 Apache Derby 中的保留字

转载 作者:行者123 更新时间:2023-11-30 08:41:37 24 4
gpt4 key购买 nike

有没有办法只对保留字的列进行转义?

例如,我想使用 java 生成以下语句:

create table person(id int, name varchar(255), "year" int);

注意到“year”必须转义,因为它是一个保留字吗?有没有办法判断一个字符串是否是保留字?

我不只是转义所有列的原因是因为我宁愿查询看起来像这样:

select id, name, "year" from person

而不是这个:

select "id", "name", "year" from person

最佳答案

从通用JDBC 的角度来看,有一种确定关键字的方法,使用SQL:2003 关键字列表(您需要自己获取)+ DatabaseMetaData.getSQLKeywords() 的结果。 :

Retrieves a comma-separated list of all of this database's SQL keywords that are NOT also SQL:2003 keywords.

然而,这取决于 JDBC 驱动程序中的关键字列表是否完整且是最新的,但情况并非总是如此。我不知道 Derby 是否属于这种情况。如果您正在编写通用软件,最好始终引用以避免麻烦。

计划在 JDBC 4.3 中包含引用对象名称的功能(给定一个字符串,它将按原样返回字符串(无需引用),必要时引用或抛出 SQLException如果对象名称无效或无法引用)。这不是最终的 IIRC,然后需要等待驱动程序供应商实现它。

关于java - 确定一个词是否是 Apache Derby 中的保留字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com