How to connect to an Oracle Database
There can be two primary reasons for you to make a connection with Oracle database with GenRocket:
1. To retrieve data from the database while generating data using GenRocket runtime using generators like ListQueryGen, QueryBeforeLoop etc.
2. To populate tables in the database using receivers like GenericSQLInsertReceiver, MySQLInsertReceiver etc.
To use these Generators and Receivers, GenRocket leverages JDBC.
What is JDBC?
JDBC stands for Java™ database connectivity (JDBC) and is the JavaSoft specification of a standard application programming interface (API) that allows Java programs to access database management systems. GenRocket can connect to any database that supports JDBC.
Step 1: Create a JDBC Configuration Properties File
For GenRocket to connect to an Oracle database via JDBC you will need to create a config.properties file. Any application can connect a Oracle database via JDBC by reading a JDBC properties file that contains the following information:
- driver - Defines the name of the specific database driver to use to access the given database. The actual driver file must be placed in the $GEN_ROCKET_HOME/lib folder on your local computer. For Oracle, the value should be oracle.jdbc.driver.OracleDriver.
- user - Defines the Username used to access the database.
- password - Defines the password used to access the database.
- url - Defines the specific URL to access the database.
- batchCount - Defines the number of SQL statements that are batched together and sent to the database for execution. This property is only mandatory for GenRocket Receivers.
driver=<JDBCDriverClassName> user=<userToConnectToDatabase> password=<passwordToConnectToDatabase> url=jdbc:oracle:thin:@<url>:<port>:<databaseName> batchCount=1000
Example config.properties for Oracle database
GenRocket will read this config file and connect to employee database on localhost using username root and password root. If you are connecting to a different type of database your configuration file will look different.
driver=oracle.jdbc.driver.OracleDriver user=root password=root url=jdbc:oracle:thin:@localhost:1521:employee batchCount=1000
Step 2: Next step is to add a new resource named resource.jdbc.config in the GenRocket Web.
The resource.jdbc.config resource in this image points to the dev folder.
- Set the value of resource variable to the config file name with the full file path.
- For example, say you have added config.properties at location /home/user/Desktop/. Then the resource value will be /home/user/Desktop/config.properties.
- Make sure to update your Profile (in ~/.genrocket folder) on your system after adding the new resource with its value. GenRocket will read this resource value from your profile on your system to make a connection with the database.
Step 3: Download and place the JDBC connector Jar file to the $GENROCKET_HOME/lib/ folder
- Download and place an Oracle Connector in your genrocket-3.5.12/lib folder
- It is OK if your GenRocket version doesn't match the one above -- still just place the Oracle connector in the lib directory
- You can download the JDBC connector for Oracle at this link.
Step 4: Reference the JDBC Resource in your Generators or Receivers
When you create a Scenario that has a Generator or Receiver that references your jdbc.config resource it will connect directly to your database.
java.lang.NoClassDefFoundError: oracle/xdb/XMLType Error
If you face an exception that says: java.lang.NoClassDefFoundError: oracle/xdb/XMLType, then please download xdb6.jar from this link and place the Jar inside of $GEN_ROCKET_HOME/lib folder. Or you can download the xdb6.jar we attached to this article if you are using Oracle Database 11g Release 2 (220.127.116.11) version.
If you are still not able to connect to your Oracle database via JDBC, please contact firstname.lastname@example.org.