DataGrip 2025.2 Help

文件模板变量

一个 file template 可以包含变量,在应用模板时会被其值替换。 变量是一个以美元符号开头的字符串 $ ,后跟变量名。 变量名称可以选择性地用花括号括起来。 例如: $MyVariable${MyVariable} 是同一个变量的不同表示法。

预定义模板变量

文件模板中可以使用以下预定义变量:

变量

描述

${DATE}

当前系统日期

${DAY}

当前日期

${DS}

美元符号 $。 该变量用于转义美元符号,使其不被视为模板变量的前缀。

${FILE_NAME}

新文件的名称

${HOUR}

当前小时

${MINUTE}

当前分钟

${SECOND}

当前秒

${MONTH}

当前月份

${MONTH_NAME_FULL}

当前月份的全名(如一月、二月等)

${MONTH_NAME_SHORT}

当前月份名称的前三个字母(如 Jan、Feb 等)

${NAME}

新实体的名称(文件、类、接口等)

${PRODUCT_NAME}

IDE 名称(例如,DataGrip)

${PROJECT_NAME}

当前项目的名称

${TIME}

当前系统时间

${USER}

当前用户的登录名

${YEAR}

当前年份

变量方法

由于 DataGrip 使用 Velocity 作为文件模板的模板引擎,文件模板中的变量可以使用 Java String 方法。 例如,以下是可能的:

  • ${NAME.toUpperCase()} :将新实体(文件)的名称转换为大写字母。

  • ${PROJECT_NAME.length()} :打印项目名称的长度。

  • ${PRODUCT_NAME.substring(0,5)} :打印您使用的 IDE 名称的前五个字符。

自定义模板变量

除了预定义模板变量,还可以指定自定义变量。 如果必要,可以在模板中使用 #set 指令直接定义自定义变量的值。 在使用相应的变量之前编写指令。

例如,如果您希望使用您的全名而不是通过预定义变量 ${USER} 定义的登录名,请在自定义变量之前添加以下构造:

#set( $MyName = "John Smith" ) Created by: $MyName

如果变量的值在模板中未定义,DataGrip将会在应用模板时要求您指定该值。

例如,您可以创建以下 SQL 文件模板,每次基于此模板创建新文件时,系统会提示您输入 IDFIRST NAME 的值:

select * from actor; #set( $LAST_NAME = "Smith" ) insert into actor (actor_id, first_name, last_name, last_update) values (${ID},'${FIRST_NAME}','${LAST_NAME}','${DATE} ${TIME}');

在此示例中,我们使用了 ${ID}${FIRST_NAME} 变量,并且没有设置它们的值。 当您基于此模板创建文件时,DataGrip 将要求您提供这些变量的值:

基于文件模板创建文件

在生成的文件中,变量将被替换为您在新文件对话框中输入的值(本例中为方法和参数名称):

select * from actor; insert into actor (actor_id, first_name, last_name, last_update) values (202, 'Peter', 'Smith', '01.02.2023 13:34');

示例

以下示例展示了一个在 DataGrip 中创建用户定义函数的模板:

CREATE FUNCTION `${FUNCTION_NAME}`(`$arg1`, `$arg2`, `$arg3`) RETURNS BEGIN RETURN END #parse("Copyright.sql")

当您创建一个新的自定义 SQL 文件时,此模板会生成一个内容类似于以下内容的文件:

CREATE FUNCTION `functionName`(`arg1`, `arg2`, `arg3`) RETURNS BEGIN RETURN END /** * Copyright. Created by User on 10.08.2018 */
最后修改日期: 2025年 9月 26日