|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.drupal.project.computing.DDatabase
public class DDatabase
Connect to Drupal through direct database access. It uses JDBC and Apache Commons DBUtils, so it's independent of DBMS implementations. Currently we support MySQL and PostgreSQL. Due to security reasons, it is not recommended to use this class directly to access Drupal database unless necessary. Typical reasons to use this class: 1) performance, 2) prototyping. Other than those 2 cases, you should consider to use {computing_record} to pass data in/out of Drupal. This can be used as standalone class.
Nested Class Summary | |
---|---|
static class |
DDatabase.AsyncBatchRunner
This is thread that upload data through JDBC concurrently. |
static class |
DDatabase.DatabaseDriver
Basic info about Drupal database driver's type. |
static class |
DDatabase.UnitTest
|
Field Summary | |
---|---|
protected org.apache.commons.dbcp.BasicDataSource |
dataSource
JDBC datasource for this Drupal connection. |
protected java.util.Properties |
dbProperties
|
protected java.util.logging.Logger |
logger
|
Constructor Summary | |
---|---|
DDatabase(java.util.Properties dbProperties)
Initialize connection pooling and connect to the Drupal database. |
Method Summary | |
---|---|
int[] |
batch(java.lang.String sql,
java.lang.Object[][] params)
Run batch database update. |
void |
close()
Don't forget to close the connections after using it. |
java.lang.String |
d(java.lang.String sql)
"Decorates" the SQL statement for Drupal. |
java.sql.Connection |
getConnection()
Get one database JDBC connection. |
long |
insert(java.lang.String sql,
java.lang.Object... params)
Insert one record and get the auto-increment ID. |
java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
query(java.lang.String sql,
java.lang.Object... params)
Simply run Drupal database queries e.g., query("SELECT nid, title FROM {node} WHERE type=?", "forum"); |
java.util.List<java.lang.Object[]> |
queryArray(java.lang.String sql,
java.lang.Object... params)
Simply run Drupal database queries, returning a list of arrays instead of maps. |
java.lang.Object |
queryValue(java.lang.String sql,
java.lang.Object... params)
Simply run Drupal database queries, returning one value. |
int |
update(java.lang.String sql,
java.lang.Object... params)
Run Drupal database update queries (UPDATE, DELETE, INSERT) without using d(). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected java.util.logging.Logger logger
protected final java.util.Properties dbProperties
protected org.apache.commons.dbcp.BasicDataSource dataSource
Constructor Detail |
---|
public DDatabase(java.util.Properties dbProperties) throws DConnectionException
DConnectionException
Method Detail |
---|
public void close() throws DConnectionException
DConnectionException
public java.sql.Connection getConnection() throws DConnectionException
DConnectionException
public java.lang.String d(java.lang.String sql)
sql
- the original SQL statement to be decorated.
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> query(java.lang.String sql, java.lang.Object... params) throws DConnectionException
sql
- SQL query to be executed, use {} for table namesparams
- Parameters to complete the SQL query
DConnectionException
public java.lang.Object queryValue(java.lang.String sql, java.lang.Object... params) throws DConnectionException
sql
- SQL query to be executed, use {} for table namesparams
- Parameters to complete the SQL query
DConnectionException
public java.util.List<java.lang.Object[]> queryArray(java.lang.String sql, java.lang.Object... params) throws DConnectionException
sql
- SQL query to be executed, use {} for table namesparams
- Parameters to complete the SQL query
DConnectionException
public int update(java.lang.String sql, java.lang.Object... params) throws DConnectionException
sql
- SQL update query to be executed, use {} for table names.params
- parameters to complete the SQL query
DConnectionException
public long insert(java.lang.String sql, java.lang.Object... params) throws DConnectionException
sql
- SQL INSERT statement.params
- Parameters to complete INSERT
DConnectionException
public int[] batch(java.lang.String sql, java.lang.Object[][] params) throws DConnectionException
sql
- SQL update query to be executed, use {} for table names.params
- params parameters to complete the SQL query
DConnectionException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |