# Class DataSourceElement

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.protocol.jdbc.config.DataSourceElement

All Implemented Interfaces:
  `Serializable, Cloneable, ConfigElement, Searchable, TestBean, TestElement, TestStateListener`

public class DataSourceElement extends AbstractTestElement implements ConfigElement, TestStateListener, TestBean

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from interface TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

## Constructor Summary

Constructors
Constructor
Description
`DataSourceElement()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addConfigElement(ConfigElement config)`
Add a configuration element to this one.
`Object`
`clone()`
`boolean`
`expectsModification()`
If your config element expects to be modified in the process of a test run, and you want those modifications to carry over from sample to sample (as in a cookie manager - you want to save all cookies that get set throughout the test), then return true for this method.
`String`
`getCheckQuery()`
`static Connection`
`getConnection(String poolName)`
`String`
`getConnectionAge()`
`String`
`getDataSource()`
`String`
`getDbUrl()`
`String`
`getDriver()`
`String`
`getPassword()`
`String`
`getPoolMax()`
`String`
`getTimeout()`
`String`
`getTransactionIsolation()`
`String`
`getTrimInterval()`
`String`
`getUsername()`
`boolean`
`isAutocommit()`
`boolean`
`isKeepAlive()`
`void`
`setAutocommit(boolean autocommit)`
`void`
`setCheckQuery(String checkQuery)`
`void`
`setConnectionAge(String connectionAge)`
`void`
`setDataSource(String dataSource)`
`void`
`setDbUrl(String dbUrl)`
`void`
`setDriver(String driver)`
`void`
`setKeepAlive(boolean keepAlive)`
`void`
`setPassword(String password)`
`void`
`setPoolMax(String poolMax)`
`void`
`setTimeout(String timeout)`
`void`
`setTransactionIsolation(String transactionIsolation)`
`void`
`setTrimInterval(String trimInterval)`
`void`
`setUsername(String username)`
`void`
`testEnded()`
Called once for all threads after the end of a test.
`void`
`testEnded(String host)`
Called once for all threads after the end of a test.
`void`
`testStarted()`
Called just before the start of the test from the main engine thread.
`void`
`testStarted(String host)`
Called just before the start of the test from the main engine thread.

### Methods inherited from class AbstractTestElement

`addPropertiesValues, addProperty, addProperty, addTestElement, canRemove, clear, clearTemporary, clearTestElementChildren, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

### Methods inherited from class Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### DataSourceElement

public DataSourceElement()

## Method Details

### testEnded

public void testEnded()
Description copied from interface: `TestStateListener`

Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testEnded` in interface `TestStateListener`
See Also:
  - `StandardJMeterEngine.stopTest()`

### testEnded

public void testEnded(String host)
Description copied from interface: `TestStateListener`

Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testEnded` in interface `TestStateListener`
Parameters:
  `host` - name of host
See Also:
  - `StandardJMeterEngine.stopTest()`

### testStarted

public void testStarted()
Description copied from interface: `TestStateListener`

Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testStarted` in interface `TestStateListener`
See Also:
  - `StandardJMeterEngine.run()`

### testStarted

public void testStarted(String host)
Description copied from interface: `TestStateListener`

Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testStarted` in interface `TestStateListener`
Parameters:
  `host` - name of host
See Also:
  - `StandardJMeterEngine.run()`

### clone

public Object clone()

Specified by:
  `clone` in interface `ConfigElement`
Specified by:
  `clone` in interface `TestElement`
Overrides:
  `clone` in class `AbstractTestElement`

### getConnection

public static Connection getConnection(String poolName) throws SQLException

Throws:
  `SQLException`

### addConfigElement

public void addConfigElement(ConfigElement config)
Description copied from interface: `ConfigElement`
Add a configuration element to this one. This allows config elements to combine and give a "layered" effect. For example, HTTPConfigElements have properties for domain, path, method, and parameters. If element A has everything filled in, but null for domain, and element B is added, which has only domain filled in, then after adding B to A, A will have the domain from B. If A already had a domain, then the correct behavior is for A to ignore the addition of element B.

Specified by:
  `addConfigElement` in interface `ConfigElement`
Parameters:
  `config` - the element to be added to this ConfigElement

### expectsModification

public boolean expectsModification()
Description copied from interface: `ConfigElement`
If your config element expects to be modified in the process of a test run, and you want those modifications to carry over from sample to sample (as in a cookie manager - you want to save all cookies that get set throughout the test), then return true for this method. Your config element will not be cloned for each sample. If your config elements are more static in nature, return false. If in doubt, return false.

Specified by:
  `expectsModification` in interface `ConfigElement`
Returns:
  true if the element expects to be modified over the course of a test run

### getCheckQuery

public String getCheckQuery()

Returns:
  Returns the checkQuery.

### setCheckQuery

public void setCheckQuery(String checkQuery)

Parameters:
  `checkQuery` - The checkQuery to set.

### getConnectionAge

public String getConnectionAge()

Returns:
  Returns the connectionAge.

### setConnectionAge

public void setConnectionAge(String connectionAge)

Parameters:
  `connectionAge` - The connectionAge to set.

### getDataSource

public String getDataSource()

Returns:
  Returns the poolname.

### setDataSource

public void setDataSource(String dataSource)

Parameters:
  `dataSource` - The poolname to set.

### getDbUrl

public String getDbUrl()

Returns:
  Returns the dbUrl.

### setDbUrl

public void setDbUrl(String dbUrl)

Parameters:
  `dbUrl` - The dbUrl to set.

### getDriver

public String getDriver()

Returns:
  Returns the driver.

### setDriver

public void setDriver(String driver)

Parameters:
  `driver` - The driver to set.

### getPassword

public String getPassword()

Returns:
  Returns the password.

### setPassword

public void setPassword(String password)

Parameters:
  `password` - The password to set.

### getPoolMax

public String getPoolMax()

Returns:
  Returns the poolMax.

### setPoolMax

public void setPoolMax(String poolMax)

Parameters:
  `poolMax` - The poolMax to set.

### getTimeout

public String getTimeout()

Returns:
  Returns the timeout.

### setTimeout

public void setTimeout(String timeout)

Parameters:
  `timeout` - The timeout to set.

### getTrimInterval

public String getTrimInterval()

Returns:
  Returns the trimInterval.

### setTrimInterval

public void setTrimInterval(String trimInterval)

Parameters:
  `trimInterval` - The trimInterval to set.

### getUsername

public String getUsername()

Returns:
  Returns the username.

### setUsername

public void setUsername(String username)

Parameters:
  `username` - The username to set.

### isAutocommit

public boolean isAutocommit()

Returns:
  Returns the autocommit.

### setAutocommit

public void setAutocommit(boolean autocommit)

Parameters:
  `autocommit` - The autocommit to set.

### isKeepAlive

public boolean isKeepAlive()

Returns:
  Returns the keepAlive.

### setKeepAlive

public void setKeepAlive(boolean keepAlive)

Parameters:
  `keepAlive` - The keepAlive to set.

### getTransactionIsolation

public String getTransactionIsolation()

Returns:
  the transaction isolation level

### setTransactionIsolation

public void setTransactionIsolation(String transactionIsolation)

Parameters:
  `transactionIsolation` - The transaction isolation level to set. `NULL` to use the default of the driver.