Execute query against database.
JDBC driver library file(s) should be provided on the classpath
if used programatically, or on the same path with Web-Harvest executable if used standalone.
In case of SELECT sql statement, it returns list of row objects. They can be accessed with
special accessor methods:
<mydbrow>.getColumnCount() - returns number of columns returned.<mydbrow>.getColumnName(index) - returns name for column number.<mydbrow>.get(column_index) - returns field value for column number.<mydbrow>.get(column_name) - returns field value for column name.The whole list of returned db rows can be accessed by index to get individual row:
<mydbvar>.get(rowindex)
For example:
mydb.get(0).get("image")
<database connection="jdbc connection string"
jdbcclass="full named jdbc class"
username="username"
password="password"
autocommit="autocommit"
max="max rows returned">
select, insert or delete SQL query
</database>
| Name | Required | Default | Description |
|---|---|---|---|
| connection | yes | Properly formatted JDBC string for the database. It depends on database/driver vendor. | |
| jdbcclass | yes | Fully qualified class name of the JDBC driver. | |
| username | no | Username to access database. | |
| password | no | Password to access database. | |
| autocommit | no | true | Whether commit is performed automatically after query execution. |
| max | no | no limit | Maximum number of returned rows from the SELECT statement. |
<var-def name="employees">
<database connection="jdbc:microsoft:Sqlserver://myserver:1433;databaseName=mycompany;user=sa;password=hehehe"
jdbcclass="com.microsoft.jdbc.sqlserver.SQLServerDriver">
select name, salary from employee
</database>
</var-def>
<loop item="emp">
<list>
<var name="employees"/>
</list>
<body>
<template>Salary of ${emp.get("name")} is ${emp.get("salary")}</template>
</body>
</loop>
<database connection="jdbc:microsoft:Sqlserver://myserver:1433;databaseName=mycompany;user=sa;password=hehehe"
jdbcclass="com.microsoft.jdbc.sqlserver.SQLServerDriver">
<template>
insert into news (id, url, text, source)
values (${myId}, '${myUrl}', '${myText}', '${mySource}')
</template>
</database>