|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectvelosurf.sql.Database
public class Database
This class encapsulates a connection to the database and contains all the stuff relative to it.
To get a new instance, client classes should call one of the getInstance static methods.
| Field Summary | |
|---|---|
protected int |
caching
default caching mode |
static int |
CASE_SENSITIVE
|
static int |
CASE_UNKNOWN
case-sensitive policy |
protected int |
caseSensivity
case-sensivity |
protected ConnectionPool |
connectionPool
Pool of connections |
private static java.util.Map |
connectionsByConfigFile
map config files -> instances |
private static java.util.Map |
connectionsByParams
map parameters -> instances |
private static int |
contextCase
case-sensivity for context |
private Cryptograph |
cryptograph
cryptograph used to encrypt/decrypt database ids |
protected java.lang.String |
driverClass
driver class name, if provided in the config file |
protected DriverInfo |
driverInfo
driver infos (database vendor specific) |
protected boolean |
driverLoaded
whether the JDBC driver has been loaded |
protected java.util.Map<java.lang.String,Entity> |
entities
map name->entity |
static int |
LOWERCASE
|
protected int |
maxConnections
|
protected int |
minConnections
|
protected java.lang.String |
password
database user's password |
protected PreparedStatementPool |
preparedStatementPool
pool of prepared statements |
protected boolean |
readOnly
default access mode |
protected ReverseEngineer |
reverseEngineer
|
protected Entity |
rootEntity
root entity that contains all root attributes and actions |
protected java.lang.String |
schema
schema |
private java.lang.String |
seed
random seed used to initialize the cryptograph |
private static java.util.Map |
sharedCatalog
Shared catalog, to share entities among instances. |
protected StatementPool |
statementPool
pool of statements |
protected ConnectionPool |
transactionConnectionPool
Pool of connections for transactions |
protected PreparedStatementPool |
transactionPreparedStatementPool
pool of prepared statements for transactions |
protected StatementPool |
transactionStatementPool
pool of statements for transactions |
static int |
UPPERCASE
|
protected java.lang.String |
url
database url |
protected java.lang.String |
user
database user |
| Constructor Summary | |
|---|---|
private |
Database()
builds a new connection |
private |
Database(java.lang.String user,
java.lang.String password,
java.lang.String url)
builds a new connection |
private |
Database(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver)
builds a new connection |
private |
Database(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver,
java.lang.String schema)
builds a new connection |
| Method Summary | |
|---|---|
java.lang.String |
adaptCase(java.lang.String identifier)
changes to lowercase or uppercase if needed |
static java.lang.String |
adaptContextCase(java.lang.String str)
|
void |
addEntity(Entity entity)
add a new entity |
void |
close()
close the connection |
protected void |
connect()
|
java.lang.String |
deobfuscate(java.lang.Object value)
de-obfuscate the given value |
void |
displayStats()
display statistics about the statements pools |
java.lang.Object |
evaluate(java.lang.String query)
evaluate a query to a scalar |
Action |
getAction(java.lang.String name)
get a root action |
Attribute |
getAttribute(java.lang.String name)
get a root attribute |
int |
getCaseSensivity()
get database case-sensivity |
ConnectionWrapper |
getConnection()
get a jdbc connection |
DriverInfo |
getDriverInfo()
get database vendor |
java.util.Map<java.lang.String,Entity> |
getEntities()
|
Entity |
getEntity(java.lang.String name)
get an existing entity |
Entity |
getEntityCreate(java.lang.String name)
get a named entity or creeate it if it doesn't exist |
static Database |
getInstance(java.io.InputStream config)
get a new connection |
static Database |
getInstance(java.io.InputStream config,
XIncludeResolver xincludeResolver)
get a new connection |
static Database |
getInstance(java.lang.String configFilename)
get a unique Database from config filename |
static Database |
getInstance(java.lang.String user,
java.lang.String password,
java.lang.String url)
get a unique Database from connection params |
static Database |
getInstance(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver)
get a unique Database from connection params |
static Database |
getInstance(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver,
java.lang.String schema)
get a unique Database from connection params |
private java.lang.Integer |
getMagicNumber(java.lang.String schema)
get the integer key used to share schema entities among instances |
ReverseEngineer |
getReverseEngineer()
|
Entity |
getRootEntity()
|
java.lang.String |
getSchema()
get the schema |
ConnectionWrapper |
getTransactionConnection()
get the underlying jdbc connection used for transactions, and mark it right away as busy |
protected void |
initCryptograph()
|
protected void |
loadDriver()
loads the appropriate driver |
java.lang.String |
obfuscate(java.lang.Object value)
obfuscate the given value |
protected void |
open(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver)
open the connection |
protected void |
open(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver,
java.lang.String schema)
open the connection |
PooledPreparedStatement |
prepare(java.lang.String query)
prepare a query |
RowIterator |
query(java.lang.String query)
issue a query |
RowIterator |
query(java.lang.String query,
Entity entity)
issue a query, knowing the resulting entity |
private void |
readConfigFile(java.io.InputStream config,
XIncludeResolver xincludeResolver)
read configuration from the given input stream |
protected void |
setCaching(int cachingMethod)
|
void |
setCase(int caseSensivity)
|
void |
setDriver(java.lang.String driverClass)
|
void |
setMaxConnections(int maxConnections)
|
void |
setMinConnections(int minConnections)
|
void |
setPassword(java.lang.String password)
|
protected void |
setReadOnly(boolean readOnly)
|
void |
setSchema(java.lang.String schema)
|
void |
setSeed(java.lang.String seed)
|
void |
setURL(java.lang.String url)
|
void |
setUser(java.lang.String user)
|
PooledPreparedStatement |
transactionPrepare(java.lang.String query)
prepare a query which is part of a transaction |
int |
transactionUpdate(java.lang.String query)
issue an update query that is part of a transaction |
int |
update(java.lang.String query)
issues an update query |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected java.lang.String user
protected java.lang.String password
protected java.lang.String url
protected java.lang.String schema
protected boolean driverLoaded
protected java.lang.String driverClass
protected ConnectionPool connectionPool
protected int minConnections
protected int maxConnections
protected ConnectionPool transactionConnectionPool
protected StatementPool statementPool
protected StatementPool transactionStatementPool
protected PreparedStatementPool preparedStatementPool
protected PreparedStatementPool transactionPreparedStatementPool
protected boolean readOnly
protected int caching
protected java.util.Map<java.lang.String,Entity> entities
protected Entity rootEntity
protected DriverInfo driverInfo
private java.lang.String seed
private Cryptograph cryptograph
public static final int CASE_UNKNOWN
public static final int CASE_SENSITIVE
public static final int UPPERCASE
public static final int LOWERCASE
protected int caseSensivity
private static int contextCase
private static java.util.Map connectionsByParams
private static java.util.Map connectionsByConfigFile
private static java.util.Map sharedCatalog
protected ReverseEngineer reverseEngineer
| Constructor Detail |
|---|
private Database()
private Database(java.lang.String user,
java.lang.String password,
java.lang.String url)
throws java.sql.SQLException
user - user namepassword - passwordurl - database url
java.sql.SQLException - thrown by the database engine
private Database(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver)
throws java.sql.SQLException
user - user namepassword - passwordurl - database urldriver - driver java class name
java.sql.SQLException - thrown by the database engine
private Database(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver,
java.lang.String schema)
throws java.sql.SQLException
user - user namepassword - passwordurl - database urldriver - driver java class nameschema - schema name to use
java.sql.SQLException - thrown by the database engine| Method Detail |
|---|
public static Database getInstance(java.lang.String user,
java.lang.String password,
java.lang.String url)
throws java.sql.SQLException
user - user namepassword - passwordurl - database url
java.sql.SQLException - thrown by the database engine
public static Database getInstance(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver)
throws java.sql.SQLException
user - user namepassword - passwordurl - database urldriver - driver java class name
java.sql.SQLException - thrown by the database engine
public static Database getInstance(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver,
java.lang.String schema)
throws java.sql.SQLException
user - user namepassword - passwordurl - database urldriver - driver java class nameschema - schema
java.sql.SQLException - thrown by the database engine
public static Database getInstance(java.lang.String configFilename)
throws java.sql.SQLException,
java.io.FileNotFoundException,
java.io.IOException
configFilename - config filename
java.sql.SQLException - thrown by the database engine
java.io.FileNotFoundException
java.io.IOException
public static Database getInstance(java.io.InputStream config)
throws java.sql.SQLException,
java.io.IOException
config - config filename
java.sql.SQLException - thrown by the database engine
java.io.IOException
public static Database getInstance(java.io.InputStream config,
XIncludeResolver xincludeResolver)
throws java.sql.SQLException,
java.io.IOException
config - config filename
java.sql.SQLException - thrown by the database engine
java.io.IOException
protected void open(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver)
throws java.sql.SQLException
user - user namepassword - passwordurl - database urldriver - driver java class name
java.sql.SQLException - thrown by the database engine
protected void open(java.lang.String user,
java.lang.String password,
java.lang.String url,
java.lang.String driver,
java.lang.String schema)
throws java.sql.SQLException
user - user namepassword - passwordurl - database urldriver - driver java class nameschema - schema name
java.sql.SQLException - thrown by the database engine
protected void connect()
throws java.sql.SQLException
java.sql.SQLExceptionprotected void setReadOnly(boolean readOnly)
protected void setCaching(int cachingMethod)
public void setUser(java.lang.String user)
public void setPassword(java.lang.String password)
public void setURL(java.lang.String url)
public void setDriver(java.lang.String driverClass)
public void setSchema(java.lang.String schema)
public void setMinConnections(int minConnections)
public void setMaxConnections(int maxConnections)
public void setSeed(java.lang.String seed)
public void setCase(int caseSensivity)
protected void loadDriver()
protected void initCryptograph()
public ReverseEngineer getReverseEngineer()
public RowIterator query(java.lang.String query)
throws java.sql.SQLException
query - an SQL query
java.sql.SQLException
public RowIterator query(java.lang.String query,
Entity entity)
throws java.sql.SQLException
query - an SQL queryentity - the resulting entity
java.sql.SQLExceptionpublic java.lang.Object evaluate(java.lang.String query)
query - an sql query
public PooledPreparedStatement prepare(java.lang.String query)
query - an sql query
public PooledPreparedStatement transactionPrepare(java.lang.String query)
query - an sql query
public int update(java.lang.String query)
query - an sql query
public int transactionUpdate(java.lang.String query)
query - an sql query
public void close()
throws java.sql.SQLException
java.sql.SQLException - thrown by the database enginepublic void displayStats()
public ConnectionWrapper getConnection()
throws java.sql.SQLException
java.sql.SQLException
public ConnectionWrapper getTransactionConnection()
throws java.sql.SQLException
java.sql.SQLException
private void readConfigFile(java.io.InputStream config,
XIncludeResolver xincludeResolver)
throws java.sql.SQLException,
java.io.IOException
config - input stream on the config file
java.sql.SQLException - thrown by the database engine
java.io.IOExceptionpublic java.lang.String adaptCase(java.lang.String identifier)
identifier -
public void addEntity(Entity entity)
public Entity getRootEntity()
public Entity getEntityCreate(java.lang.String name)
name - name of an entity
public Entity getEntity(java.lang.String name)
name - the name of an entity
public java.util.Map<java.lang.String,Entity> getEntities()
public Attribute getAttribute(java.lang.String name)
name - name of an attribute
public Action getAction(java.lang.String name)
name - name of an attribute
public java.lang.String obfuscate(java.lang.Object value)
value - value to obfuscate
public java.lang.String deobfuscate(java.lang.Object value)
value - value to de-obfuscate
public DriverInfo getDriverInfo()
public int getCaseSensivity()
private java.lang.Integer getMagicNumber(java.lang.String schema)
public java.lang.String getSchema()
public static java.lang.String adaptContextCase(java.lang.String str)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||