У вас есть два варианта:
Создание таблицы вручную:
Сначала необходимо подключиться к базе данных вашего узла.Предположим, что вы используете встроенную базу данных H2 узла и хотите подключиться к узлу через порт 10008.
В Corda 3 вы можете установить порт H2 узла в задаче Cordform
:
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
directory "./build/nodes"
...
node {
name "O=MyNode,L=London,C=GB"
...
h2Port 10008
}
...
}
Или непосредственно в файле node.conf
узла:
h2port=10008
Если узел работает локально, вы затем подключаетесь к узлу, используя последний стабильный клиент H2 используя адрес:
jdbc:h2:tcp://localhost:10008/node
Создание таблицы автоматически при запуске узла:
Узлы могут содержать сервисы , которые инициализируются при запуске узлаи постоянно работать на узле.Мы можем написать сервис, который создает таблицу базы данных при запуске следующим образом:
private val TABLE_NAME = "crypto_values"
@CordaService
class DatabaseService(private val services: ServiceHub) : SingletonSerializeAsToken() {
companion object {
val log = loggerFor<DatabaseService>()
}
/**
* Initialises a database table on the node with name TABlE_NAME.
*/
init {
val query = """
create table if not exists $TABLE_NAME(
token varchar(64),
value int
)"""
val session = services.jdbcSession()
val preparedStatement = session.prepareStatement(query)
try {
preparedStatement.executeUpdate()
} catch (e: SQLException) {
log.error(e.message)
throw e
} finally {
preparedStatement.close()
}
log.info("Created $TABLE_NAME table.")
}
}