Package com.smartfoxserver.v2.db
Interface IDBManager
-
- All Superinterfaces:
com.smartfoxserver.bitswarm.service.IService
- All Known Implementing Classes:
SFSDBManager
public interface IDBManager extends com.smartfoxserver.bitswarm.service.IService
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description java.lang.Object
executeInsert(java.lang.String sql, java.lang.Object[] params)
Executes a SQL INSERT command returning the key of the inserted rowISFSArray
executeQuery(java.lang.String sql)
Deprecated.Please useexecuteQuery(String, Object[])
ISFSArray
executeQuery(java.lang.String sql, java.lang.Object[] params)
Perform a SQL query and return a structured object based on SFSArray and SFSObject.void
executeUpdate(java.lang.String sql)
Deprecated.please useexecuteUpdate(String, Object[])
void
executeUpdate(java.lang.String sql, java.lang.Object[] params)
Executes a non-query SQL command such as INSERT, UPDATE, DELETE etc...DBConfig
getConfig()
Get the configuration details of the JDBC connection and connection pooljava.sql.Connection
getConnection()
Get a direct reference to the JDBC connection object.boolean
isActive()
True if the Service is active
-
-
-
Method Detail
-
isActive
boolean isActive()
True if the Service is active- Returns:
- true if the Service is active
-
getConfig
DBConfig getConfig()
Get the configuration details of the JDBC connection and connection pool- Returns:
- the configuration details of the JDBC connection and connection pool
- See Also:
DBConfig
-
getConnection
java.sql.Connection getConnection() throws java.sql.SQLException
Get a direct reference to the JDBC connection object. This way you can access the underlying pooled connection and perform any JDBC API call directly. The connection object must be returned to the connection pool once you are finished using it. This is done by calling the connection's close() method.An example of a code template would be:
try { // An example query ... it could be anything sql = "SELECT * FROM table"; conn = getParentZone().getDBManager().getConnection(); stmt = conn.prepareStatement(sql); ResultSet resultSet = stmt.executeQuery(); // More code here... } // Not mandatory catch (SQLException) { // do something about it } // Mandatory! Close connection before leaving this method finally { if (stmt != null) stmt.close(); if (conn != null) conn.close(); }
- Returns:
- the pooled JDBC connection
- Throws:
java.sql.SQLException
-
executeQuery
ISFSArray executeQuery(java.lang.String sql, java.lang.Object[] params) throws java.sql.SQLException
Perform a SQL query and return a structured object based on SFSArray and SFSObject. This is a simplified technique that provides the query result(s) in a convenient format, ready to be sent to the client(s).The SQL code can include placeholders (using a question mark) and an array of parameters that will be used to populate them, just like when using prepared statements via JDBC. Example:
executeQuery("SELECT * FROM Users WHERE age > ? AND country=?", new Object[] {35, "Sweden"});
The structure of the returned object is as follows:
SFSArray: represents the result set. It contains all the selected records in form of SFSObject(s)
-
Index 0: SFSObject (record)
- key (field name): value
- key (field name): value
- etc...
... -
Index N: SFSObject (record)
- key (field name): value
- key (field name): value
- etc...
...
...
Data types from the database are translated to SFSObject types according to this table:
SQL Type SFSObject Type NULL NULL BOOLEAN BOOLEAN DATE LONG (Unix timestamp) FLOAT, DECIMAL, DOUBLE, REAL DOUBLE TINYINT, SMALLINT, INTEGER INTEGER CHAR, VARCHAR, LONGVARCHAR UTF_STRING NCHAR, NVARCHAR, LONGNVARCHAR UTF_STRING TIMESTAMP LONG BIGINT (up to 2^63) LONG LONGVARBINARY, BLOB BYTE_ARRAY - Parameters:
sql
- the SQL code. Placeholders for parameters can be used such as: SELECT * FROM Users WHERE name=?params
- An array of objects that will be used to populate the placeholders in the SQL code- Returns:
- the SFSArray representing the result set
- Throws:
java.sql.SQLException
- reports any errors related with the execution of the SQL query
-
Index 0: SFSObject (record)
-
executeQuery
@Deprecated ISFSArray executeQuery(java.lang.String sql) throws java.sql.SQLException
Deprecated.Please useexecuteQuery(String, Object[])
This is a small variation onexecuteQuery(String, Object[])
where no additional SQL parameter is used. Please seeexecuteQuery(String, Object[])
- Parameters:
sql
- the SQL code- Returns:
- the SFSArray representing the result set
- Throws:
java.sql.SQLException
- reports any errors related with the execution of the SQL query
-
executeUpdate
void executeUpdate(java.lang.String sql, java.lang.Object[] params) throws java.sql.SQLException
Executes a non-query SQL command such as INSERT, UPDATE, DELETE etc...- Parameters:
sql
- the SQL code. Placeholders for parameters can be used such as: SELECT * FROM Users WHERE name=?params
- An array of objects that will be used to populate the placeholders in the SQL code- Throws:
java.sql.SQLException
- reports any errors related with the execution of the SQL update
-
executeInsert
java.lang.Object executeInsert(java.lang.String sql, java.lang.Object[] params) throws java.sql.SQLException
Executes a SQL INSERT command returning the key of the inserted row- Parameters:
sql
- the SQL code. Placeholders for parameters can be used such as: INSERT INTO users (name, email) VALUES(?, ?)params
- An array of objects that will be used to populate the placeholders in the SQL code- Throws:
java.sql.SQLException
- reports any errors related with the execution of the SQL update- Since:
- 2.7
-
executeUpdate
@Deprecated void executeUpdate(java.lang.String sql) throws java.sql.SQLException
Deprecated.please useexecuteUpdate(String, Object[])
Executes a non-query SQL command such as INSERT, UPDATE, DELETE etc...- Parameters:
sql
- the SQL code.- Throws:
java.sql.SQLException
- reports any errors related with the execution of the SQL update
-
-