org.objectweb.cjdbc.scenario.tools.util
Class QueryGenerator

java.lang.Object
  extended byorg.objectweb.cjdbc.scenario.tools.util.QueryGenerator

public final class QueryGenerator
extends java.lang.Object

This class defines a QueryGenerator

Version:
1.0
Author:
Nicolas Modrzyk

Field Summary
private  double createDropRatio
           
(package private)  double insertUpdateRatio
           
(package private)  java.lang.Integer maxUniqueId
           
(package private)  double orderByRatio
           
(package private)  java.util.Random rand
           
(package private)  double readWriteRatio
           
(package private)  DatabaseSchema schema
           
private  double schemaUpdateRatio
           
(package private)  java.util.ArrayList tables
           
(package private)  int tableSize
           
(package private)  double writeDeleteRatio
           
 
Constructor Summary
QueryGenerator(java.sql.Connection connection)
          Creates a new QueryGenerator object
QueryGenerator(DatabaseSchema schema)
          Creates a new QueryGenerator object
 
Method Summary
 java.lang.String generateCreateQuery()
           
 java.lang.String generateDelete()
          Generate a delete query
 java.lang.String generateDropQuery()
           
 java.lang.String generateInsert()
          Generate an insert query
private  java.lang.String generateOrderBy(DatabaseTable table)
          Generate order by statement of a read query
 java.lang.String generateQuery()
          Main query generator method.
 java.lang.String generateReadQuery()
          Generate a read query
 java.lang.String generateSchemaUpdateQuery()
           
 java.lang.String generateSelectQuery()
          Generate a select query
 java.lang.String generateUpdate()
          Generate an update query
 java.lang.String generateWriteQuery()
          Generate a write query.
 double getCreateDropRatio()
          Returns the createDropRatio value.
 double getInsertUpdateRatio()
          Returns the insertUpdateRatio value.
private  int getMaxUniqueId()
           
private  int getNextMaxUniqueId()
           
 double getOrderByRatio()
          Returns the orderByRatio value.
private  DatabaseColumn getRandomColumn(DatabaseTable table, boolean allowUnique)
           
private  DatabaseColumn getRandomNonUniqueColumn(DatabaseTable table)
           
private  java.lang.String getRandomString(int size)
           
private  java.lang.String getRandomTable()
           
private  java.lang.String getRandomType()
           
private  java.lang.String getRandomValue(DatabaseColumn column)
           
 double getReadWriteRatio()
          Returns the readWriteRatio value.
private  java.lang.String getRelation(DatabaseTable table, boolean useLowerAndGreater)
           
 double getSchemaUpdateRatio()
          Returns the schemaUpdateRatio value.
private  DatabaseTable getTable()
           
 double getWriteDeleteRatio()
          Returns the writeDeleteRatio value.
static void main(java.lang.String[] args)
          Test application
private  boolean nextIsInRatio(double ratio)
           
 void setCreateDropRatio(double createDropRatio)
          Sets the createDropRatio value.
 void setInsertUpdateRatio(double insertUpdateRatio)
          Sets the insertUpdateRatio value.
 void setOrderByRatio(double orderByRatio)
          Sets the orderByRatio value.
 void setReadWriteRatio(double readWriteRatio)
          Sets the readWriteRatio value.
 void setSchemaUpdateRatio(double schemaUpdateRatio)
          Sets the schemaUpdateRatio value.
 void setWriteDeleteRatio(double writeDeleteRatio)
          Sets the writeDeleteRatio value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

maxUniqueId

java.lang.Integer maxUniqueId

rand

java.util.Random rand

readWriteRatio

double readWriteRatio

writeDeleteRatio

double writeDeleteRatio

insertUpdateRatio

double insertUpdateRatio

orderByRatio

double orderByRatio

schema

DatabaseSchema schema

tables

java.util.ArrayList tables

tableSize

int tableSize

schemaUpdateRatio

private double schemaUpdateRatio

createDropRatio

private double createDropRatio
Constructor Detail

QueryGenerator

public QueryGenerator(DatabaseSchema schema)
Creates a new QueryGenerator object


QueryGenerator

public QueryGenerator(java.sql.Connection connection)
               throws java.sql.SQLException
Creates a new QueryGenerator object

Parameters:
connection - used to retrieve the schema
Throws:
java.sql.SQLException - if fails to retrieve the schema with the given connection
Method Detail

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Test application

Parameters:
args - not needed
Throws:
java.lang.Exception - yes!

generateReadQuery

public final java.lang.String generateReadQuery()
Generate a read query

Returns:
a query that will not udpate the data of the database

generateSelectQuery

public final java.lang.String generateSelectQuery()
Generate a select query

Returns:
"SELECT ..."

generateOrderBy

private java.lang.String generateOrderBy(DatabaseTable table)
Generate order by statement of a read query

Parameters:
table - target sql table of the read query
Returns:
"ORDER BY ..."

getRelation

private java.lang.String getRelation(DatabaseTable table,
                                     boolean useLowerAndGreater)

getMaxUniqueId

private int getMaxUniqueId()

getNextMaxUniqueId

private int getNextMaxUniqueId()

getTable

private DatabaseTable getTable()

generateWriteQuery

public final java.lang.String generateWriteQuery()
Generate a write query. This depends on the different ratio set for the query generator instance.

Returns:
an Insert, Update or Delete query

generateSchemaUpdateQuery

public final java.lang.String generateSchemaUpdateQuery()

generateCreateQuery

public final java.lang.String generateCreateQuery()

generateDropQuery

public final java.lang.String generateDropQuery()

nextIsInRatio

private boolean nextIsInRatio(double ratio)

generateDelete

public final java.lang.String generateDelete()
Generate a delete query

Returns:
"DELETE FROM ..."

generateUpdate

public final java.lang.String generateUpdate()
Generate an update query

Returns:
"UPDATE ..."

getRandomNonUniqueColumn

private DatabaseColumn getRandomNonUniqueColumn(DatabaseTable table)

getRandomColumn

private DatabaseColumn getRandomColumn(DatabaseTable table,
                                       boolean allowUnique)

generateInsert

public final java.lang.String generateInsert()
Generate an insert query

Returns:
"INSERT INTO ..."

getRandomValue

private final java.lang.String getRandomValue(DatabaseColumn column)

getRandomString

private final java.lang.String getRandomString(int size)

getRandomType

private final java.lang.String getRandomType()

getRandomTable

private java.lang.String getRandomTable()

getReadWriteRatio

public final double getReadWriteRatio()
Returns the readWriteRatio value.

Returns:
Returns the readWriteRatio.

setReadWriteRatio

public final void setReadWriteRatio(double readWriteRatio)
Sets the readWriteRatio value.

Parameters:
readWriteRatio - The readWriteRatio to set.

generateQuery

public final java.lang.String generateQuery()
Main query generator method.

Returns:
a read or write query depending on the setting of the related ratio

getInsertUpdateRatio

public final double getInsertUpdateRatio()
Returns the insertUpdateRatio value.

Returns:
Returns the insertUpdateRatio.

setInsertUpdateRatio

public final void setInsertUpdateRatio(double insertUpdateRatio)
Sets the insertUpdateRatio value.

Parameters:
insertUpdateRatio - The insertUpdateRatio to set.

getOrderByRatio

public final double getOrderByRatio()
Returns the orderByRatio value.

Returns:
Returns the orderByRatio.

setOrderByRatio

public final void setOrderByRatio(double orderByRatio)
Sets the orderByRatio value.

Parameters:
orderByRatio - The orderByRatio to set.

getWriteDeleteRatio

public final double getWriteDeleteRatio()
Returns the writeDeleteRatio value.

Returns:
Returns the writeDeleteRatio.

setWriteDeleteRatio

public final void setWriteDeleteRatio(double writeDeleteRatio)
Sets the writeDeleteRatio value.

Parameters:
writeDeleteRatio - The writeDeleteRatio to set.

getCreateDropRatio

public double getCreateDropRatio()
Returns the createDropRatio value.

Returns:
Returns the createDropRatio.

setCreateDropRatio

public void setCreateDropRatio(double createDropRatio)
Sets the createDropRatio value.

Parameters:
createDropRatio - The createDropRatio to set.

getSchemaUpdateRatio

public double getSchemaUpdateRatio()
Returns the schemaUpdateRatio value.

Returns:
Returns the schemaUpdateRatio.

setSchemaUpdateRatio

public void setSchemaUpdateRatio(double schemaUpdateRatio)
Sets the schemaUpdateRatio value.

Parameters:
schemaUpdateRatio - The schemaUpdateRatio to set.


Copyright © 2002, 2005 - ObjectWeb Consortium - All Rights Reserved.