Database Interface
Exposes methods to deal with actual database object. It has methods to open, create, close, and execute query's.
public interface IDatabase {
public void openOrCreate(final DatabaseDescriptor databaseDescriptor) throws DatabaseException;
public void close(final DatabaseDescriptor databaseDescriptor) throws DatabaseException;
public void executeQuery(final DatabaseDescriptor databaseDescriptor, final EntityDescriptor entityDescriptor, final String query) throws DatabaseException;
public void executeBindQuery(final DatabaseDescriptor databaseDescriptor, final EntityDescriptor entityDescriptor, final String query, final Iterator<Object> columnValues) throws DatabaseException;
public Iterator<Map<String, Object>> executeFetchQuery(final DatabaseDescriptor databaseDescriptor, final EntityDescriptor entityDescriptor, final String query) throws DatabaseException;
public void executeMethod(final String methodName, final Object parameters) throws DatabaseException;
}
@protocol SICIDatabaseImpl <NSObject>
- (void)openOrCreate:(SICDatabaseDescriptor* const)databaseDescriptor;
- (void)close:(SICDatabaseDescriptor* const)databaseDescriptor;
- (void)executeQuery:(SICDatabaseDescriptor* const)databaseDescriptor entityDescriptor:(SICEntityDescriptor* const)entityDescriptor query:(NSString* const)query;
- (void)executeBindQuery:(SICDatabaseDescriptor* const)databaseDescriptor entityDescriptor:(SICEntityDescriptor* const)entityDescriptor query:(NSString* const)query columnValues:(NSEnumerator* const)columnValues;
- (NSEnumerator*)executeSelectQuery:(SICDatabaseDescriptor* const)databaseDescriptor entityDescriptor:(SICEntityDescriptor* const)entityDescriptor query:(NSString* const)query;
-(void)executeMethod:(NSString* const)methodName parameter:(id const)parameter;
@end
public interface IDatabase
{
void OpenOrCreate(DatabaseDescriptor databaseDescriptor);
void Close(DatabaseDescriptor databaseDescriptor);
void ExecuteQuery(DatabaseDescriptor databaseDescriptor, EntityDescriptor entityDescriptor, String query);
void ExecuteBindQuery(DatabaseDescriptor databaseDescriptor, EntityDescriptor entityDescriptor, String query, IEnumerator<Object> columnValues);
IEnumerator<IDictionary<String, Object>> ExecuteFetchQuery(DatabaseDescriptor databaseDescriptor, EntityDescriptor entityDescriptor, String query);
void ExecuteMethod(String methodName, Object parameters);
}
Open/Create the database through Database Descriptor. By default add CREATE_IF_NECESSARY flag so that if database does not exist it will create.
Android Sample: Open Or Create
DatabaseDescriptor databaseDescriptor = ResourceManager.getInstance().getDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try {
database = Database.createDatabase(databaseDescriptor);
} catch(DatabaseException databaseException) {
//Log It.
}
try {
database.openOrCreate(databasePath + databaseDescriptor.getDatabaseName());
} catch(DatabaseException databaseException) {
// Log It.
}
iOS Sample: Open Or Create
SICDatabaseDescriptor *databaseDescriptor = [[SICResourceManager getInstance] getDatabaseDescriptorBasedOnName:database-descriptor-name];
SICIDatabase *database = nil;
@try {
database = [SICDatabase createDatabase:databaseDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
@try {
[database openOrCreate:databasePath + [databaseDescriptor getDatabaseName]];
} @catch(SICDatabaseException *databaseException) {
// Log It.
}
Windows Sample: Open Or Create
DatabaseDescriptor databaseDescriptor = ResourceManager.GetInstance().GetDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try
{
database = Database.CreateDatabase(databaseDescriptor);
}
catch(DatabaseException databaseException)
{
//Log It.
}
try
{
database.OpenOrCreate(databasePath + databaseDescriptor.GetDatabaseName());
}
catch(DatabaseException databaseException)
{
// Log It.
}
Close the existing opened database through Database Descriptor.
Android Sample: Close
DatabaseDescriptor databaseDescriptor = ResourceManager.getInstance().getDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try {
database = Database.createDatabase(databaseDescriptor);
} catch(DatabaseException databaseException) {
//Log It.
}
try {
database.close();
} catch(DatabaseException databaseException) {
// Log It.
}
iOS Sample: Close
SICDatabaseDescriptor *databaseDescriptor = [SICResourceManager getInstance] getDatabaseDescriptorBasedOnName:database-descriptor-name]];
SICIDatabase *database = nil;
@try {
database = [SICDatabase createDatabase:databaseDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
@try {
[database close];
} @catch(SICDatabaseException *databaseException) {
// Log It.
}
Windows Sample: Close
DatabaseDescriptor databaseDescriptor = ResourceManager.GetInstance().GetDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try
{
database = Database.CreateDatabase(databaseDescriptor);
}
catch(DatabaseException databaseException)
{
//Log It.
}
try
{
database.Close();
}
catch(DatabaseException databaseException)
{
// Log It.
}
Execute a single SQL statement that is NOT a SELECT or any other SQL statement that returns data. It has no means to return any data (such as the number of affected rows). Instead, you're encouraged to use insert, update, delete, when possible.
Android Sample: Execute Query
DatabaseDescriptor databaseDescriptor = ResourceManager.getInstance().getDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try {
database = Database.createDatabase(databaseDescriptor);
} catch(DatabaseException databaseException) {
//Log It.
}
try {
database.executeQuery(Query);
} catch(DatabaseException databaseException) {
// Log It.
}
iOS Sample: Execute Query
SICDatabaseDescriptor *databaseDescriptor = [SICResourceManager getInstance] getDatabaseDescriptorBasedOnName:database-descriptor-name]];
SICIDatabase *database = null;
@try {
database = [SICDatabase createDatabase:databaseDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
@try {
[database executeQuery:Query];
} @catch(SICDatabaseException *databaseException) {
// Log It.
}
Windows Sample: Execute Query
DatabaseDescriptor databaseDescriptor = ResourceManager.GetInstance().GetDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try
{
database = Database.CreateDatabase(databaseDescriptor);
}
catch(DatabaseException databaseException)
{
//Log It.
}
try
{
database.ExecuteQuery(Query);
}
catch(DatabaseException databaseException)
{
// Log It.
}
A pre-compiled statement that can be reused. The statement cannot return multiple rows, but 1x1 result sets are allowed.
Android Sample: Execute Bind Query
DatabaseDescriptor databaseDescriptor = ResourceManager.getInstance().getDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try {
database = Database.createDatabase(databaseDescriptor);
} catch(DatabaseException databaseException) {
//Log It.
}
try {
database.executeBindQuery(Query, Column Values);
} catch(DatabaseException databaseException) {
// Log It.
}
iOS Sample: Execute Bind Query
SICDatabaseDescriptor *databaseDescriptor = [SICResourceManager getInstance] getDatabaseDescriptorBasedOnName:database-descriptor-name]];
SICIDatabase *database = null;
@try {
database = [SICDatabase createDatabase:databaseDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
@try {
[database executeBindQuery:Query values:Column-Values];
} @catch(SICDatabaseException *databaseException) {
// Log It.
}
Windows Sample: Execute Bind Query
DatabaseDescriptor databaseDescriptor = ResourceManager.GetInstance().GetDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try
{
database = Database.CreateDatabase(databaseDescriptor);
}
catch(DatabaseException databaseException)
{
//Log It.
}
try
{
database.ExecuteBindQuery(Query, Column Values);
}
catch(DatabaseException databaseException)
{
// Log It.
}
Query the given table, returning a Cursor over the result set.
Android Sample: Execute Fetch Query
DatabaseDescriptor databaseDescriptor = ResourceManager.getInstance().getDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try {
database = Database.createDatabase(databaseDescriptor);
} catch(DatabaseException databaseException) {
//Log It.
}
try {
database.executeFetchQuery(Query);
} catch(DatabaseException databaseException) {
// Log It.
}
iOS Sample: Execute Fetch Query
SICDatabaseDescriptor *databaseDescriptor = [SICResourceManager getInstance] getDatabaseDescriptorBasedOnName:database-descriptor-name];
SICIDatabase *database = null;
@try {
database = [SICDatabase createDatabase:databaseDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
@try {
[database executeFetchQuery:Query];
} @catch(SICDatabaseException *databaseException) {
// Log It.
}
Windows Sample: Execute Fetch Query
DatabaseDescriptor databaseDescriptor = ResourceManager.GetInstance().GetDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try
{
database = Database.CreateDatabase(databaseDescriptor);
}
catch(DatabaseException databaseException)
{
//Log It.
}
try
{
database.ExecuteFetchQuery(Query);
}
catch(DatabaseException databaseException)
{
// Log It.
}
Executes the method on database object.
Android Sample: Execute Method
DatabaseDescriptor databaseDescriptor = ResourceManager.getInstance().getDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try {
database = Database.createDatabase(databaseDescriptor);
} catch(DatabaseException databaseException) {
//Log It.
}
try {
database.executeMethod(Method Name, Parameters);
} catch(DatabaseException databaseException) {
// Log It.
}
iOS Sample: Execute Method
SICDatabaseDescriptor *databaseDescriptor = [SICResourceManager getInstance] getDatabaseDescriptorBasedOnName:database-descriptor-name]];
SICIDatabase *database = null;
@try {
database = [SICDatabase createDatabase:databaseDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
@try {
[database executeMethod:Method Name parameters:Parameters;
} @catch(SICDatabaseException *databaseException) {
// Log It.
}
Windows API: Execute Method
DatabaseDescriptor databaseDescriptor = ResourceManager.GetInstance().GetDatabaseDescriptorBasedOnName(database-descriptor-name);
IDatabase database = null;
try
{
database = Database.CreateDatabase(databaseDescriptor);
}
catch(DatabaseException databaseException)
{
//Log It.
}
try
{
database.ExecuteMethod(Method Name, Parameters);
} catch(DatabaseException databaseException)
{
// Log It.
}