Page tree
Skip to end of metadata
Go to start of metadata

作用

资源的特性允许我们增加一个数据加连接并根据定义的脚本对这些数据者相关操作,比如

  • 在工作流的校验中,检查数据库中特定的数据是否满足条件
  • 在工作流的后处理中,通过特写的查询更新数据库中的信息

ScriptRunner管理一个连接池,允许数据库连接在后续的请求中重复使用这些连接。连接池消除了每次使用后关闭连接或在脚本中指定连接详细信息(如密码)的需要。

您可以引用配置连接时输入的池名称,而不是输入特定的连接信息。

可以使用两种数据库连接类型


There are two types of database connection:

  • 外部连接 – 可以连接到任何的数据库。


  • 本地 –  可以连接到JIRA正在使用的数据库


使用

当我们增加数据库连接的时候,我们可以在我们的ScriptRunner的脚本中来使用这些获得,以便获得数据库中的数据操作。

我们可以在会用中使用以下格式,来对数据库进行相应操作,

import com.onresolve.scriptrunner.db.DatabaseUtil

DatabaseUtil.withSql('localdatabase') { sql ->
    sql.rows('select * from project')
}

##获得结果
[
	[ID: 10000, PNAME: DEMO, URL: null, LEAD: admin, DESCRIPTION: null, PKEY: DEMO, PCOUNTER: 23, ASSIGNEETYPE: 3, AVATAR: 10324, ORIGINALKEY: DEMO, PROJECTTYPE: software],
	[ID: 10100, PNAME: 需求空间, URL: , LEAD: user02, DESCRIPTION: , PKEY: REQ, PCOUNTER: 14, ASSIGNEETYPE: 3, AVATAR: 10324, ORIGINALKEY: REQ, PROJECTTYPE: software],
	[ID: 10101, PNAME: 团队1空间, URL: , LEAD: user02, DESCRIPTION: , PKEY: TEAM1, PCOUNTER: 9, ASSIGNEETYPE: 3, AVATAR: 10324, ORIGINALKEY: TEAM1, PROJECTTYPE: software],
	[ID: 10102, PNAME: ITSM, URL: , LEAD: user02, DESCRIPTION: , PKEY: ITSM, PCOUNTER: 3, ASSIGNEETYPE: 3, AVATAR: 10324, ORIGINALKEY: ITSM, PROJECTTYPE: software],
	[ID: 10103, PNAME: 项目1空间, URL: , LEAD: user02, DESCRIPTION: , PKEY: PROJ1, PCOUNTER: 0, ASSIGNEETYPE: 3, AVATAR: 10324, ORIGINALKEY: PROJ1, PROJECTTYPE: software],
	[ID: 10200, PNAME: SD, URL: null, LEAD: admin, DESCRIPTION: null, PKEY: SD, PCOUNTER: 135, ASSIGNEETYPE: 3, AVATAR: 10324, ORIGINALKEY: SD, PROJECTTYPE: service_desk]
]


DatabaseUtil.withSql有两个参数:

  1. 在Resource中定义的数据库连接名称

  2. 闭包。闭包接收一个初始化的groovy.lang.Sql对象作为参数。使用闭包的好处是,它在执行后返回到池的连接。

withSql方法返回闭包返回的任何内容,因此作为另一个示例,您可以使用以下方法获取项目的数量:

import com.onresolve.scriptrunner.db.DatabaseUtil

DatabaseUtil.withSql('localdatabase') { sql ->
    sql.rows('select * from project')[0]
}

##获得结果
[ID: 10000, PNAME: DEMO, URL: null, LEAD: admin, DESCRIPTION: null, PKEY: DEMO, PCOUNTER: 23, ASSIGNEETYPE: 3, AVATAR: 10324, ORIGINALKEY: DEMO, PROJECTTYPE: software]


数据库连接URL

Oracle

JDBC Driveroracle.jdbc.OracleDriver
JDBC URLjdbc:oracle:thin:@localhost:1521:orclpdb1
Hibernate Dialectorg.hibernate.dialect.Oracle12cDialect

mysql

JDBC Drivercom.mysql.jdbc.Driver
JDBC URLjdbc:mysql://localhost/high_performance_java_persistence
Hibernate Dialectorg.hibernate.dialect.MySQL8Dialect

PostgreSQL

JDBC Driverorg.postgresql.Driver
JDBC URLjdbc:postgresql://localhost/high_performance_java_persistence
Hibernate Dialectorg.hibernate.dialect.PostgreSQL95Dialect

SQLServer

JDBC Drivercom.microsoft.sqlserver.jdbc.SQLServerDriver
JDBC URLjdbc:sqlserver://localhost;instance=SQLEXPRESS;databaseName=high_performance_java_persistence
Hibernate Dialectorg.hibernate.dialect.SQLServer2012Dialect

mariadb

JDBC Driverorg.mariadb.jdbc.Driver
JDBC URLjdbc:mariadb://localhost/high_performance_java_persistence
Hibernate Dialectorg.hibernate.dialect.MariaDB53Dialect

Db2 Express-C

JDBC Drivercom.ibm.db2.jcc.DB2Driver
JDBC URLjdbc:db2://localhost/high_performance_java_persistence
Hibernate Dialectorg.hibernate.dialect.DB2Dialect

HSQLDB

JDBC Driverorg.hsqldb.jdbc.JDBCDriver
JDBC URLjdbc:hsqldb:mem:high_performance_java_persistence
Hibernate Dialectorg.hibernate.dialect.HSQLDialect

H2

JDBC Driverorg.h2.Driver
JDBC URLjdbc:h2:mem:high_performance_java_persistence
Hibernate Dialectorg.hibernate.dialect.H2Dialect

Derby

JDBC Driverorg.apache.derby.jdbc.EmbeddedDriver
JDBC URLjdbc:derby:target/tmp/derby/hpjp;databaseName=high_performance_java_persistence;create=true
Hibernate Dialectorg.hibernate.dialect.DerbyTenSevenDialect





  • No labels