Description
The MySQLInsertReceiver is used to insert a Domain's generated data directly into a MySQL database table via a JDBC connection. This Receiver is similar to the GenericSQLInsertReceiver, except for some features that are specific to a MySQL database. To insert data directly into a database table that is not a MySQL database, use the GenericInsertSQLReceiver.
In This Article
- MySQL-Specific Functionality
- Receiver Parameters
- Column Data Types
- JDBC Configuration File
- Receiver Attribute Property Keys
- Example Setting of Receiver Property Key Values
MySQL-Specific Functionality
Specifically, when the option to truncate a table, before populating the table is set to true, then the following SQL statements are executed. Specifically, lines 4 and 8 are unique to the MySQL database engine.
private truncateTable() { if (truncate) { try { PreparedStatement stmt = connection.prepareStatement("SET FOREIGN_KEY_CHECKS=0;") stmt.execute() stmt = connection.prepareStatement("truncate ${databaseName}.${tableName};") stmt.execute() stmt = connection.prepareStatement("SET FOREIGN_KEY_CHECKS=1;") stmt.execute() } catch (Exception e) { throw new GenRocketException(e.getMessage()) } } }
Receiver Parameters
The following parameters can be defined for the MySQLInsertReceiver. Items with an asterisk (*) are required:
- resourceName* - Defines the name of the resource that contains the database connection information on a user's local machine.
- databaseName* - Defines the name of the database to access.
- tableName* - Defines the name of the database table to insert rows into.
- uniqueAttribute - Defines a Domain Attribute the Receiver will use to identify a unique value that has already been inserted into the table to prevent duplicate data entry where a unique constraint is required.
- truncate* - Truncates the table before inserting rows by executing a 'delete from table' statement.
- statementSeparator* - Defines when a SQL statement has ended.
- booleanValue* - Format a Boolean object with the selected mask.
- rowDelimiter* - Defines the bytes that delimit each row.
- nullValue* - Represents a NULL value.
- quoteTextData* - Defines the character to use when quoting text data.
Column Data Types
This Receiver uses the following MySQL-specific column data types:
- VARCHAR
- INTEGER
- BIGINT
- BOOLEAN
- DATE
- DOUBLE
- DECIMAL
- FLOAT
- TIME
- TIMESTAMP
JDBC Configuration File
This Receiver utilizes a configuration file stored locally on the user's computer or a shared test server to obtain the necessary information to connect to a specific database via JDBC. For detailed information, refer to 'What is a JDBC Config File?'
Receiver Attribute Property Keys
The Receiver defines two property keys that can be modified on any of its associated Domain Attributes:
- columnName - Defines the name of the column as it is in the actual database table (e.g., first_name, last_name, date_of_birth).
- dataType - Defines the column data type.
- include - Determines if the Attribute will be included in the output.
Example Setting of Receiver Property Key Values
The example image below shows the property key view for the set of Attributes of a Domain using the MySQLInsertReceiver.