SICDatabase Class Reference
| Inherits from | NSObject |
|---|---|
| Conforms to | SICIDatabase |
| Declared in | SICDatabase.h SICDatabase.m |
Overview
Exposes methods to interact with database. It has methods to create, delete, and perform other common database management tasks.
Other Methods
+ dropDatabase:
It drops the whole database based on database name.
+ (void)dropDatabase:(NSString *)databaseNameParameters
databaseName |
Entity-Descriptor object which defines the structure of table. |
|---|
Discussion
It drops the whole database based on database name.
Drop the book table.
SICDatabaseDescriptor *databaseDescriptor = [[[Book alloc]init] getDatabaseDescriptor];
@try { [SICDatabase dropDatabase:[databaseDescriptor getDatabaseName]]; } @catch(SICDatabaseException *databaseException) { //Log It. }
Declared In
SICDatabase.h
+ beginTransaction:
Begins a transaction in EXCLUSIVE mode.
+ (void)beginTransaction:(SICDatabaseDescriptor *const)databaseDescriptorParameters
databaseDescriptor |
DatabaseDescriptor object. |
|---|
Discussion
Begins a transaction in EXCLUSIVE mode.
Transactions can be nested. When the outer transaction is ended all of the work done in that transaction and all of the nested transactions will be committed or rolled back. The changes will be rolled back if any transaction is ended without being marked as clean(by calling commitTransaction). Otherwise they will be committed.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle:BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuthor: @"c_author"];
[cBook setLink: @"c_link"];
SICDatabaseDescriptor *databaseDescriptor = [cBook getDatabaseDescriptor];
@try {
[SICDatabase beginTransaction:databaseDescriptor]; [cBook save]; [SICDatabase commitTransaction:databaseDescriptor]; } @catch(SICDatabaseException *databaseException) { //Log it. } @finally { [SICDatabase endTransaction:databaseDescriptor]; }
Declared In
SICDatabase.h
+ commitTransaction:
Marks the current transaction as successful.
+ (void)commitTransaction:(SICDatabaseDescriptor *const)databaseDescriptorParameters
databaseDescriptor |
Database Descriptor Object. |
|---|
Discussion
Marks the current transaction as successful.
Finally it will end a transaction.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle:BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuthor: @"c_author"];
[cBook setLink: @"beer_link"];
DatabaseDescriptor *databaseDescriptor = [cBook getDatabaseDescriptor];
@try {
[SICDatabase beginTransaction:databaseDescriptor]; [cBook save]; [SICDatabase commitTransaction:databaseDescriptor]; } @catch(SICDatabaseException *databaseException) { //Log it. } @finally { [SICDatabase endTransaction:databaseDescriptor]; }
Declared In
SICDatabase.h
Protocol Methods
– createTable
Is used to create a new table in an database.
- (void)createTableDiscussion
Is used to create a new table in an database.
Using SIMINOV there are three ways to create table in database.
- Describing table structure in form of ENTITY-DESCRIPTOR XML file. And creation of table will be handled by SIMINOV.
SIMINOV will parse each ENTITY-DESCRIPTOR XML defined by developer and create table’s in database.
Example:
<!-- Design Of EntityDescriptor.xml -->
<entity-descriptor>
<!-- General Properties Of Table And Class -->
<!-- Mandatory Field -->
<!-- NAME OF TABLE -->
<property name="table_name">name_of_table</property>
<!-- Mandatory Field -->
<!-- MAPPED CLASS NAME -->
<property name="class_name">mapped_class_name</property>
<!-- Optional Field -->
<attributes>
<!-- Column Properties Required Under This Table -->
<!-- Optional Field -->
<attribute>
<!-- Mandatory Field -->
<!-- COLUMN_NAME: Mandatory Field -->
<property name="column_name">column_name_of_table</property>
<!-- Mandatory Field -->
<!-- VARIABLE_NAME: Mandatory Field -->
<property name="variable_name">class_variable_name</property>
<!-- Mandatory Field -->
<property name="type">java_variable_data_type</property>
<!-- Optional Field (Default is false) -->
<property name="primary_key">true/false</property>
<!-- Optional Field (Default is false) -->
<property name="not_null">true/false</property>
<!-- Optional Field (Default is false) -->
<property name="unique">true/false</property>
<!-- Optional Field -->
<property name="check">condition_to_be_checked (Eg: variable_name 'condition' value; variable_name > 0)</property>
<!-- Optional Field -->
<property name="default">default_value_of_column (Eg: 0.1)</property>
</attribute>
</attributes>
<!-- Optional Field -->
<indexes>
<!-- Index Properties -->
<index>
<!-- Mandatory Field -->
<!-- NAME OF INDEX -->
<property name="name">name_of_index</property>
<!-- Mandatory Field -->
<!-- UNIQUE: Optional Field (Default is false) -->
<property name="unique">true/false</property>
<!-- Optional Field -->
<!-- Name of the column -->
<property name="column">column_name_needs_to_add</property>
</index>
</indexes>
<!-- Map Relationship Properties -->
<!-- Optional Field's -->
<relationships>
<relationship>
<!-- Mandatory Field -->
<!-- Type of Relationship -->
<property name="type">one-to-one|one-to-many|many-to-one|many-to-many</property>
<!-- Mandatory Field -->
<!-- REFER -->
<property name="refer">class_variable_name</property>
<!-- Mandatory Field -->
<!-- REFER TO -->
<property name="refer_to">map_to_class_name</property>
<!-- Optional Field -->
<property name="on_update">cascade/restrict/no_action/set_null/set_default</property>
<!-- Optional Field -->
<property name="on_delete">cascade/restrict/no_action/set_null/set_default</property>
<!-- Optional Field (Default is false) -->
<property name="load">true/false</property>
</relationship>
</relationships>
</entity-descriptor>
Declared In
SICIDatabase.h
– dropTable
It drop’s the table from database based on entity-descriptor.
- (void)dropTableDiscussion
It drop’s the table from database based on entity-descriptor.
Drop the Book table.
Book *book = [[Book alloc] init];
@try {
[book dropTable];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
Declared In
SICIDatabase.h
– dropIndex:
Is used to drop a index on a table in database.
- (void)dropIndex:(NSString *)indexNameParameters
indexName |
Name of a index needs to be drop. |
|---|
Discussion
Is used to drop a index on a table in database.
Create Index On Book table.
NSString * indexName = @"BOOK_INDEX_BASED_ON_AUDITOR";
Book *book = [[Book alloc] init];
@try {
[book dropIndex:indexName];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
Declared In
SICIDatabase.h
– select
Returns all tuples based on query from mapped table for invoked class object.
- (id<SICISelect>)selectReturn Value
SICISelect object.
Discussion
Returns all tuples based on query from mapped table for invoked class object.
Example:
NSArray *books;
@try {
books = [[[[Book alloc] init] select] execute];
} @catch(SICDatabaseException de) {
//Log it.
}
Declared In
SICIDatabase.h
– select:
Returns all tuples based on manual query from mapped table for invoked class object.
- (id)select:(NSString *)queryParameters
query |
Query to get tuples from database. |
|---|
Return Value
SICISelect object.
Discussion
Returns all tuples based on manual query from mapped table for invoked class object.
Example:
NSString *query = @"SELECT * FROM BOOK";
NSArray *books;
@try {
books = [[[Book alloc] init] select:query];
} @catch(SICDatabaseException *de) {
//Log it.
}
Declared In
SICIDatabase.h
– save
It adds a record to any single table in a relational database.
- (void)saveDiscussion
It adds a record to any single table in a relational database.
Example: Make Book Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
@try {
[cBook save];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– update
It updates a record to any single table in a relational database.
- (void)updateDiscussion
It updates a record to any single table in a relational database.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"beer_link"];
@try {
[cBook update];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– saveOrUpdate
It finds out whether tuple exists in table or not. IF NOT EXISTS: adds a record to any single table in a relational database. ELSE: updates a record to any single table in a relational database.
- (void)saveOrUpdateDiscussion
It finds out whether tuple exists in table or not. IF NOT EXISTS: adds a record to any single table in a relational database. ELSE: updates a record to any single table in a relational database.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setHistory: @"c_auditor"];
[cBook setLink: @"c_link"];
@try {
[cBook saveOrUpdate];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– delete
It deletes a record from single table in a relational database.
- (id<SICIDelete>)deleteDiscussion
It deletes a record from single table in a relational database.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
@try {
[cBook delete];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– count
Returns the count of rows based on where clause provided.
- (id<SICICount>)countDiscussion
Returns the count of rows based on where clause provided.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
int noOfBooks = 0;
@try {
noOfBooks = [[cBook count] execute];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– avg
Returns the average based on where clause provided.
- (id<SICIAverage>)avgDiscussion
Returns the average based on where clause provided.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
int noOfBooks = 0;
@try {
noOfBooks = [[beer avg] execute];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– sum
Returns the sum based on where clause provided.
- (id<SICISum>)sumDiscussion
Returns the sum based on where clause provided.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
int noOfBooks = 0;
@try {
noOfBooks = [[cBook sum] execute];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– total
Returns the total based on where clause provided.
- (id<SICITotal>)totalDiscussion
Returns the total based on where clause provided.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle:BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
int totalBooks = 0;
@try {
totalBooks = [[cBook avg] execute];
}
@catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– min
Returns the min based on where clause provided.
- (id<SICIMin>)minDiscussion
Returns the min based on where clause provided.
Example: Make Book Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
int minBooks = 0;
@try {
minBooks = [[cBook min] execute];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– max
Returns the max based on where clause provided.
- (id<SICIMax>)maxDiscussion
Returns the max based on where clause provided.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: Book.BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
int maxBooks = 0;
@try {
maxBooks = [[cBook max] execute];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– groupConcat
Returns the group concat based on where clause provided.
- (id<SICIGroupConcat>)groupConcatDiscussion
Returns the group concat based on where clause provided.
Example: Make Beer Object
Book *cBook = [[Book alloc] init];
[cBook setTitle: BOOK_TYPE_C];
[cBook setDescription: @"c_description"];
[cBook setAuditor: @"c_auditor"];
[cBook setLink: @"c_link"];
int groupConcatBooks = 0;
@try {
groupConcatBooks = [[cBook groupConcat] execute];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getDatabaseDescriptor
Returns database descriptor object based on the mapped class called.
- (SICDatabaseDescriptor *)getDatabaseDescriptorReturn Value
Database Descriptor Object.
Discussion
Returns database descriptor object based on the mapped class called.
Example:
@try {
SICDatabaseDescriptor *databaseDescriptor = [[[Book alloc] init] getDatabaseDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log It.
}
Declared In
SICIDatabase.h
– getEntityDescriptor
Returns the actual entity descriptor object mapped for invoked class object.
- (SICEntityDescriptor *)getEntityDescriptorReturn Value
Entity Descriptor Object
Discussion
Returns the actual entity descriptor object mapped for invoked class object.
Example:
SICEntityDescriptor *entityDescriptor = nil;
@try {
entityDescriptor = [[[Book alloc] init] getEntityDescriptor];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getTableName
Returns the mapped table name for invoked class object.
- (NSString *)getTableNameReturn Value
Mapped Table name.
Discussion
Returns the mapped table name for invoked class object.
Example:
NSString *tableName = nil;
@try {
tableName = [[[Book alloc] init] getTableName];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getColumnNames
Returns all column names of mapped table.
- (NSEnumerator *)getColumnNamesReturn Value
All column names of mapped table.
Discussion
Returns all column names of mapped table.
Example:
NSEnumerator *columnNames = nil;
@try {
columnNames = [[[Book alloc] init] getColumnNames];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getColumnValues
Returns all column values in the same order of column names for invoked class object.
- (NSDictionary *)getColumnValuesReturn Value
All column values for invoked object.
Discussion
Returns all column values in the same order of column names for invoked class object.
Example:
NSDictionary *values = nil;
@try {
values = [[[Book alloc] init] getColumnValues];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getColumnTypes
Returns all columns with there data types for invoked class object.
- (NSDictionary *)getColumnTypesReturn Value
All columns with there data types.
Discussion
Returns all columns with there data types for invoked class object.
Example:
NSDictionary columnTypes = nil; @try { columnTypes = [[[Book alloc] init] getColumnTypes]; } @catch(SICDatabaseException databaseException) { //Log it. }
Declared In
SICIDatabase.h
– getPrimaryKeys
Returns all primary keys of mapped table for invoked class object.
- (NSEnumerator *)getPrimaryKeysReturn Value
All primary keys.
Discussion
Returns all primary keys of mapped table for invoked class object.
Example:
NSEnumerator *primaryKeys = nil;
@try {
primaryKeys = [[[Book alloc] init] getPrimaryKeys];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getMandatoryFields
Returns all mandatory fields which are associated with mapped table for invoked class object.
- (NSEnumerator *)getMandatoryFieldsReturn Value
All mandatory fields for mapped table.
Discussion
Returns all mandatory fields which are associated with mapped table for invoked class object.
Example:
NSEnumerator *mandatoryFields = nil;
@try {
mandatoryFields = [[[Book alloc] init] getMandatoryFields];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getUniqueFields
Returns all unique fields which are associated with mapped table for invoked class object.
- (NSEnumerator *)getUniqueFieldsReturn Value
All unique fields for mapped table.
Discussion
Returns all unique fields which are associated with mapped table for invoked class object.
Example:
NSEnumerator *uniqueFields = null;
@try {
uniqueFields = [[[Book alloc] init] getUniqueFields];
}
@catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h
– getForeignKeys
Returns all foreign keys of mapped table for invoked class object.
- (NSEnumerator *)getForeignKeysReturn Value
All foreign keys of mapped table.
Discussion
Returns all foreign keys of mapped table for invoked class object.
Example:
NSEnumerator *foreignKeys = nil;
@try {
foreignKeys = [[[Book alloc] init] getForeignKeys];
} @catch(SICDatabaseException *databaseException) {
//Log it.
}
Declared In
SICIDatabase.h