com.altair.hwm.comm.database
Class DBServerComm

java.lang.Object
  extended by com.altair.hwm.comm.database.DBServerComm
All Implemented Interfaces:
HWMComm, java.sql.Connection

public class DBServerComm
extends java.lang.Object
implements HWMComm, java.sql.Connection

Title: DBServerComm

Description: The communication object for database interactions

* Company: Altair Engineering, Inc.


Field Summary
 
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
 
Constructor Summary
DBServerComm(HWMCommMgr hwmCommMgr, java.lang.String strSessionName)
          Constructor
 
Method Summary
 void clearWarnings()
          Clears all warnings reported for this Connection object.
 void close()
          Releases a Connection's database and JDBC resources immediately instead of waiting for them to be automatically released.
 void commit()
          Makes all changes made since the previous commit/rollback permanent and releases any database locks currently held by the Connection.
 void Connect(java.lang.String strAddress, int nPort)
          Establishes connection with the server
 void Connect(java.lang.String strAddress, int nPort, java.lang.String strDBName)
          Connect to server NOTE: Use "Connect" which takes the driver name, URL, port, user name and password.
 void Connect(java.lang.String strDBType, java.lang.String strAddress, int nPort, java.lang.String strDBName, java.lang.String strUser, java.lang.String strPwd, boolean bCreate)
          Connect to server.
 java.sql.Statement createStatement()
          Creates a Statement object for sending SQL statements to the database.
 java.sql.Statement createStatement(int nResSetType, int nResSetConcurrency)
          Creates a Statement object that will generate ResultSet objects with the given type and concurrency.
 java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 void Disconnect()
          Disconnect from server
 boolean getAutoCommit()
          Gets the current auto-commit state.
 java.lang.String getCatalog()
          Returns the Connection's current catalog name.
 java.sql.Connection GetConnection()
          Get the connection to the database (or server)
 HWMDatabaseInfo GetDBInfo()
          Returns the DB info class being used.
 HWMDBModel GetDBModel()
           
 int getHoldability()
           
 java.sql.DatabaseMetaData getMetaData()
          Gets the metadata regarding this connection's database.
 int getTransactionIsolation()
          Gets this Connection's current transaction isolation level.
 java.util.Map getTypeMap()
          Gets the type map object associated with this connection.
 java.sql.SQLWarning getWarnings()
          Returns the first warning reported by calls on this Connection
 boolean isClosed()
          Tests to see if a Connection is closed.
 boolean isReadOnly()
          Tests to see if the connection is in read-only mode
 java.lang.String nativeSQL(java.lang.String strSQL)
          Converts the given SQL statement into the system's native SQL grammar.
 java.sql.CallableStatement prepareCall(java.lang.String strSQL)
          Creates a CallableStatement object for calling database stored procedures.
 java.sql.CallableStatement prepareCall(java.lang.String strSQL, int nResSetype, int nResSetConcurrency)
          Creates a CallableStatement object that will generate ResultSet objects with the given type and concurrency.
 java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String strSQL)
          Creates a PreparedStatement object for sending parameterized SQL statements to the database.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int autoGeneratedKeys)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int[] columnIndexes)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String strSQL, int nResSetype, int nResSetConcurrency)
          Creates a PreparedStatement object that will generate ResultSet objects with the given type and concurrency.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames)
           
 void releaseSavepoint(java.sql.Savepoint savepoint)
           
 HWMDBModel RetrieveDataModel()
          Retrieve the data model from the server
 void rollback()
          Drops all changes made since the previous commit/rollback and releases any database locks currently held by this Connection.
 void rollback(java.sql.Savepoint savepoint)
           
 void setAutoCommit(boolean bAutoCommit)
          Sets this connection's auto-commit mode.
 void setCatalog(java.lang.String strCatalog)
          Sets a catalog name in order to select a subspace of this Connection's database in which to work.
 void setHoldability(int holdability)
           
 void setReadOnly(boolean bReadOnly)
          Puts this connection in read-only mode as a hint to enable database optimizations.
 java.sql.Savepoint setSavepoint()
           
 java.sql.Savepoint setSavepoint(java.lang.String name)
           
 void setTransactionIsolation(int nLevel)
          Attempts to change the transaction isolation level to the one given.
 void setTypeMap(java.util.Map map)
          Installs the given type map as the type map for this connection.
 void StoreDataModel(HWMDBModel hwmDataModel)
          Store the data model in the server
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBServerComm

public DBServerComm(HWMCommMgr hwmCommMgr,
                    java.lang.String strSessionName)
Constructor

Method Detail

GetConnection

public java.sql.Connection GetConnection()
Get the connection to the database (or server)

Returns:
Connection The connection to database (or server)

Connect

public void Connect(java.lang.String strAddress,
                    int nPort)
             throws java.lang.Exception
Establishes connection with the server

Specified by:
Connect in interface HWMComm
Parameters:
strAddress - The address of the server
nPort - The port number to which to connect to
Throws:
IOException, - UnknownHostException
java.lang.Exception

Connect

public void Connect(java.lang.String strAddress,
                    int nPort,
                    java.lang.String strDBName)
             throws java.lang.Exception
Connect to server NOTE: Use "Connect" which takes the driver name, URL, port, user name and password.

Parameters:
strAddress - The address/URL for the server
nPort - The port # which is required only for Altair's DB server for QED
Throws:
java.lang.Exception

Connect

public void Connect(java.lang.String strDBType,
                    java.lang.String strAddress,
                    int nPort,
                    java.lang.String strDBName,
                    java.lang.String strUser,
                    java.lang.String strPwd,
                    boolean bCreate)
             throws java.lang.Exception
Connect to server.

Parameters:
strDBType - The type of database being used. Can be one of the DBTYPE_XXX in HWMDatabaseInfo class.
strAddress - The address/URL for the server
nPort - The port # at the server on which the DB server is listening for clients
strDBName - The database name to connect to
strUser - The user name
strPwd - The password for the user
bCreate - If true, the database is created. This will work only if the driver vendor has provided a method to create a database
Throws:
java.lang.Exception

Disconnect

public void Disconnect()
Disconnect from server

Specified by:
Disconnect in interface HWMComm

GetDBInfo

public HWMDatabaseInfo GetDBInfo()
Returns the DB info class being used.

Returns:
HWMDatabaseInfo The database info class

StoreDataModel

public void StoreDataModel(HWMDBModel hwmDataModel)
                    throws java.lang.Exception
Store the data model in the server

Parameters:
hwmDataModel - The data model class
Throws:
java.lang.Exception

RetrieveDataModel

public HWMDBModel RetrieveDataModel()
                             throws java.lang.Exception
Retrieve the data model from the server

Throws:
java.lang.Exception

GetDBModel

public HWMDBModel GetDBModel()

createStatement

public java.sql.Statement createStatement()
                                   throws java.sql.SQLException
Creates a Statement object for sending SQL statements to the database. SQL statements without parameters are normally executed using Statement objects. If the same SQL statement is executed many times, it is more efficient to use a PreparedStatement object. Result sets created using the returned Statement object will by default have forward-only type and read-only concurrency.

Specified by:
createStatement in interface java.sql.Connection
Throws:
java.sql.SQLException - - if a database access error occurs

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String strSQL)
                                            throws java.sql.SQLException
Creates a PreparedStatement object for sending parameterized SQL statements to the database. A SQL statement with or without IN parameters can be pre-compiled and stored in a PreparedStatement object. This object can then be used to efficiently execute this statement multiple times.

Specified by:
prepareStatement in interface java.sql.Connection
Parameters:
strSQL, - The parametric SQL statement to execute
Throws:
java.sql.SQLException - - if a database access error occurs

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String strSQL)
                                       throws java.sql.SQLException
Creates a CallableStatement object for calling database stored procedures. The CallableStatement object provides methods for setting up its IN and OUT parameters, and methods for executing the call to a stored procedure.

Specified by:
prepareCall in interface java.sql.Connection
Parameters:
strSQL, - The parametric SQL statement to execute
Throws:
java.sql.SQLException - - if a database access error occurs

nativeSQL

public java.lang.String nativeSQL(java.lang.String strSQL)
                           throws java.sql.SQLException
Converts the given SQL statement into the system's native SQL grammar. A driver may convert the JDBC sql grammar into its system's native SQL grammar prior to sending it; this method returns the native form of the statement that the driver would have sent.

Specified by:
nativeSQL in interface java.sql.Connection
Parameters:
strSQL, - The SQL statement to convert
Throws:
java.sql.SQLException - - if a database access error occurs

setAutoCommit

public void setAutoCommit(boolean bAutoCommit)
                   throws java.sql.SQLException
Sets this connection's auto-commit mode. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode. The commit occurs when the statement completes or the next execute occurs, whichever comes first. In the case of statements returning a ResultSet, the statement completes when the last row of the ResultSet has been retrieved or the ResultSet has been closed. In advanced cases, a single statement may return multiple results as well as output parameter values. In these cases the commit occurs when all results and output parameter values have been retrieved.

Specified by:
setAutoCommit in interface java.sql.Connection
Parameters:
bAutoCommit - if true, updates are automatically committed
Throws:
java.sql.SQLException - - if a database access error occurs

getAutoCommit

public boolean getAutoCommit()
                      throws java.sql.SQLException
Gets the current auto-commit state.

Specified by:
getAutoCommit in interface java.sql.Connection
Returns:
boolean true if updates are automatically committed
Throws:
java.sql.SQLException - - if a database access error occurs

commit

public void commit()
            throws java.sql.SQLException
Makes all changes made since the previous commit/rollback permanent and releases any database locks currently held by the Connection. This method should be used only when auto-commit mode has been disabled.

Specified by:
commit in interface java.sql.Connection
Throws:
java.sql.SQLException - - if a database access error occurs

rollback

public void rollback()
              throws java.sql.SQLException
Drops all changes made since the previous commit/rollback and releases any database locks currently held by this Connection. This method should be used only when auto- commit has been disabled

Specified by:
rollback in interface java.sql.Connection
Throws:
java.sql.SQLException - - if a database access error occurs

close

public void close()
           throws java.sql.SQLException
Releases a Connection's database and JDBC resources immediately instead of waiting for them to be automatically released.

Specified by:
close in interface java.sql.Connection
Throws:
java.sql.SQLException - - if a database access error occurs

isClosed

public boolean isClosed()
                 throws java.sql.SQLException
Tests to see if a Connection is closed.

Specified by:
isClosed in interface java.sql.Connection
Returns:
boolean true if cxn is closed
Throws:
java.sql.SQLException - - if a database access error occurs

getMetaData

public java.sql.DatabaseMetaData getMetaData()
                                      throws java.sql.SQLException
Gets the metadata regarding this connection's database. A Connection's database is able to provide information describing its tables, its supported SQL grammar, its stored procedures, the capabilities of this connection, and so on. This information is made available through a DatabaseMetaData object.

Specified by:
getMetaData in interface java.sql.Connection
Returns:
DatabaseMetaData a DatabaseMetaData object for this Connection
Throws:
java.sql.SQLException - - if a database access error occurs

setReadOnly

public void setReadOnly(boolean bReadOnly)
                 throws java.sql.SQLException
Puts this connection in read-only mode as a hint to enable database optimizations.

Specified by:
setReadOnly in interface java.sql.Connection
Parameters:
bReadOnly - if true - its read only cxn
Throws:
java.sql.SQLException - - if a database access error occurs

isReadOnly

public boolean isReadOnly()
                   throws java.sql.SQLException
Tests to see if the connection is in read-only mode

Specified by:
isReadOnly in interface java.sql.Connection
Returns:
boolean true if cxn is read only.
Throws:
java.sql.SQLException - - if a database access error occurs

setCatalog

public void setCatalog(java.lang.String strCatalog)
                throws java.sql.SQLException
Sets a catalog name in order to select a subspace of this Connection's database in which to work. If the driver does not support catalogs, it will silently ignore this request.

Specified by:
setCatalog in interface java.sql.Connection
Parameters:
strCatalog - The ctalog name
Throws:
java.sql.SQLException - - if a database access error occurs

getCatalog

public java.lang.String getCatalog()
                            throws java.sql.SQLException
Returns the Connection's current catalog name.

Specified by:
getCatalog in interface java.sql.Connection
Returns:
String the catalog name for this connection
Throws:
java.sql.SQLException - - if a database access error occurs

setTransactionIsolation

public void setTransactionIsolation(int nLevel)
                             throws java.sql.SQLException
Attempts to change the transaction isolation level to the one given. The constants defined in the interface Connection are the possible transaction isolation levels.

Specified by:
setTransactionIsolation in interface java.sql.Connection
Parameters:
nLevel - one of the TRANSACTION_* isolation values with the exception of TRANSACTION_NONE; some databases may not support other values
Throws:
java.sql.SQLException - - if a database access error occurs

getTransactionIsolation

public int getTransactionIsolation()
                            throws java.sql.SQLException
Gets this Connection's current transaction isolation level.

Specified by:
getTransactionIsolation in interface java.sql.Connection
Returns:
int - the current TRANSACTION_* mode value
Throws:
java.sql.SQLException - - if a database access error occurs

getWarnings

public java.sql.SQLWarning getWarnings()
                                throws java.sql.SQLException
Returns the first warning reported by calls on this Connection

Specified by:
getWarnings in interface java.sql.Connection
Returns:
SQLWarning the first SQLWarning or null
Throws:
java.sql.SQLException - - if a database access error occurs

clearWarnings

public void clearWarnings()
                   throws java.sql.SQLException
Clears all warnings reported for this Connection object. After a call to this method, the method getWarnings returns null until a new warning is reported for this Connection.

Specified by:
clearWarnings in interface java.sql.Connection
Throws:
java.sql.SQLException - - if a database access error occurs

createStatement

public java.sql.Statement createStatement(int nResSetType,
                                          int nResSetConcurrency)
                                   throws java.sql.SQLException
Creates a Statement object that will generate ResultSet objects with the given type and concurrency. This method is the same as the createStatement method above, but it allows the default result set type and result set concurrency type to be overridden.

Specified by:
createStatement in interface java.sql.Connection
Parameters:
nResSetType - - a result set type; see ResultSet.TYPE_XXX
nResSetConcurrency - - a concurrency type; see ResultSet.CONCUR_XXX
Throws:
java.sql.SQLException - - if a database access error occurs

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String strSQL,
                                                   int nResSetype,
                                                   int nResSetConcurrency)
                                            throws java.sql.SQLException
Creates a PreparedStatement object that will generate ResultSet objects with the given type and concurrency. This method is the same as the prepareStatement method above, but it allows the default result set type and result set concurrency type to be overridden

Specified by:
prepareStatement in interface java.sql.Connection
Parameters:
strSQl - the SQL statement
nResSetType - - a result set type; see ResultSet.TYPE_XXX
nResSetConcurrency - - a concurrency type; see ResultSet.CONCUR_XXX
Throws:
java.sql.SQLException - - if a database access error occurs

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String strSQL,
                                              int nResSetype,
                                              int nResSetConcurrency)
                                       throws java.sql.SQLException
Creates a CallableStatement object that will generate ResultSet objects with the given type and concurrency. This method is the same as the prepareCall method above, but it allows the default result set type and result set concurrency type to be overridden

Specified by:
prepareCall in interface java.sql.Connection
Parameters:
strSQl - the SQL statement
nResSetType - - a result set type; see ResultSet.TYPE_XXX
nResSetConcurrency - - a concurrency type; see ResultSet.CONCUR_XXX
Throws:
java.sql.SQLException - - if a database access error occurs

getTypeMap

public java.util.Map getTypeMap()
                         throws java.sql.SQLException
Gets the type map object associated with this connection. Unless the application has added an entry to the type map, the map returned will be empty.

Specified by:
getTypeMap in interface java.sql.Connection
Returns:
Map the java.util.Map object associated with this Connection object
Throws:
java.sql.SQLException - - if a database access error occurs

setTypeMap

public void setTypeMap(java.util.Map map)
                throws java.sql.SQLException
Installs the given type map as the type map for this connection. The type map will be used for the custom mapping of SQL structured types and distinct types.

Specified by:
setTypeMap in interface java.sql.Connection
Parameters:
map - java.util.Map object to install as the replacement for this Connection object's default type
Throws:
java.sql.SQLException - - if a database access error occurs

getHoldability

public int getHoldability()
                   throws java.sql.SQLException
Specified by:
getHoldability in interface java.sql.Connection
Throws:
java.sql.SQLException

setHoldability

public void setHoldability(int holdability)
                    throws java.sql.SQLException
Specified by:
setHoldability in interface java.sql.Connection
Throws:
java.sql.SQLException

setSavepoint

public java.sql.Savepoint setSavepoint()
                                throws java.sql.SQLException
Specified by:
setSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

releaseSavepoint

public void releaseSavepoint(java.sql.Savepoint savepoint)
                      throws java.sql.SQLException
Specified by:
releaseSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

rollback

public void rollback(java.sql.Savepoint savepoint)
              throws java.sql.SQLException
Specified by:
rollback in interface java.sql.Connection
Throws:
java.sql.SQLException

createStatement

public java.sql.Statement createStatement(int resultSetType,
                                          int resultSetConcurrency,
                                          int resultSetHoldability)
                                   throws java.sql.SQLException
Specified by:
createStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency,
                                              int resultSetHoldability)
                                       throws java.sql.SQLException
Specified by:
prepareCall in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int autoGeneratedKeys)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int resultSetType,
                                                   int resultSetConcurrency,
                                                   int resultSetHoldability)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int[] columnIndexes)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

setSavepoint

public java.sql.Savepoint setSavepoint(java.lang.String name)
                                throws java.sql.SQLException
Specified by:
setSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   java.lang.String[] columnNames)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException