public class Db
extends java.lang.Object
implements java.lang.Cloneable, java.lang.AutoCloseable
close() logic with right support for finalize() and some more neat featires sadly missing
in the Connection.
It is advised to have separate Db instances in in different threads using #instance().
This is simplfied and enhanced for better performance version of Db class used in other iCodici projects, it does not rely on Record/Table infrastructure anymore so could run faster with plain cached SQL prepared statements. We recommend it where performance is of essense.
Created by sergeych on 20.03.16.
| Modifier and Type | Class and Description |
|---|---|
class |
Db.Error |
static class |
Db.RollbackException |
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
connectionString |
protected java.util.Properties |
properties |
| Constructor and Description |
|---|
Db(java.lang.String connectionString) |
Db(java.lang.String connectionString,
java.util.Properties properties) |
Db(java.lang.String connectionString,
java.util.Properties properties,
java.lang.String migrationsResource) |
| Modifier and Type | Method and Description |
|---|---|
void |
clearDB() |
Db |
clone() |
void |
close() |
void |
createDB(java.lang.String migrationResource) |
boolean |
equals(java.lang.Object obj) |
void |
executeFile(java.lang.String name) |
protected void |
finalize() |
java.lang.String |
getConnectionString() |
java.lang.Integer |
getIntParam(java.lang.String name) |
int |
getIntParam(java.lang.String name,
int defaultValue) |
java.util.Properties |
getProperties() |
java.lang.String |
getStringParam(java.lang.String name) |
java.lang.String |
getStringParam(java.lang.String name,
java.lang.String defaultValue) |
int |
hashCode() |
boolean |
isClosed() |
<T> T |
queryOne(java.lang.String sqlText,
java.lang.Object... args)
Execute sqlText using cached prepared statement and args and return its first row first column if any, nd casts
it to desired type.
|
java.sql.ResultSet |
queryRow(java.lang.String sqlText,
java.lang.Object... args) |
void |
setIntParam(java.lang.String name,
int value) |
void |
setStringParam(java.lang.String name,
java.lang.String value) |
void |
setupDatabase(java.lang.String migrationsResource) |
java.sql.PreparedStatement |
statement(java.lang.String sqlText,
java.lang.Object... args) |
java.sql.PreparedStatement |
statementReturningKeys(java.lang.String sqlText,
java.lang.Object... args) |
<T> T |
transaction(java.util.concurrent.Callable<T> worker) |
void |
update(java.lang.String sqlText,
java.lang.Object... args)
Perform sql update on created/cached prepared statement
|
void |
updateWithStatement(java.sql.PreparedStatement statement) |
protected java.lang.String connectionString
protected java.util.Properties properties
public Db(java.lang.String connectionString) throws java.sql.SQLException
java.sql.SQLExceptionpublic Db(java.lang.String connectionString,
java.util.Properties properties)
throws java.sql.SQLException
java.sql.SQLExceptionpublic Db(java.lang.String connectionString,
java.util.Properties properties,
java.lang.String migrationsResource)
throws java.sql.SQLException
java.sql.SQLExceptionpublic java.util.Properties getProperties()
public void close()
close in interface java.lang.AutoCloseablepublic boolean isClosed()
protected void finalize()
throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwablepublic java.lang.String getConnectionString()
public java.lang.Integer getIntParam(java.lang.String name)
throws java.sql.SQLException
java.sql.SQLExceptionpublic java.lang.String getStringParam(java.lang.String name)
throws java.sql.SQLException
java.sql.SQLExceptionpublic int getIntParam(java.lang.String name,
int defaultValue)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void setIntParam(java.lang.String name,
int value)
throws java.sql.SQLException
java.sql.SQLExceptionpublic java.lang.String getStringParam(java.lang.String name,
java.lang.String defaultValue)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void setStringParam(java.lang.String name,
java.lang.String value)
throws java.sql.SQLException
java.sql.SQLExceptionpublic Db clone()
clone in class java.lang.Objectpublic boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic void clearDB()
public <T> T transaction(java.util.concurrent.Callable<T> worker)
throws java.lang.Exception
java.lang.Exceptionpublic void createDB(java.lang.String migrationResource)
public void setupDatabase(java.lang.String migrationsResource)
public java.sql.PreparedStatement statement(java.lang.String sqlText,
java.lang.Object... args)
throws java.sql.SQLException
java.sql.SQLExceptionpublic java.sql.PreparedStatement statementReturningKeys(java.lang.String sqlText,
java.lang.Object... args)
throws java.sql.SQLException
java.sql.SQLExceptionpublic java.sql.ResultSet queryRow(java.lang.String sqlText,
java.lang.Object... args)
throws java.sql.SQLException
java.sql.SQLExceptionpublic <T> T queryOne(java.lang.String sqlText,
java.lang.Object... args)
throws java.sql.SQLException
sqlText - sql text string with '?' for parametersargs - query parametersjava.sql.SQLExceptionpublic void update(java.lang.String sqlText,
java.lang.Object... args)
throws java.sql.SQLException
sqlText - args - java.sql.SQLExceptionpublic void updateWithStatement(java.sql.PreparedStatement statement)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void executeFile(java.lang.String name)