Database Operation Templates
Working with the Database Operations in XtendM3
Table of contents
Description
This document contains diffrent templates for various database operations.
CRUD Templates
These templates outline best practices for Create, Read, Update and Delete operations.
Create
Creating, or adding one or several new records to table.
void create() {
DBAction query = database.table("TABLENAME")
.index("00")
.build();
DBContainer container = query.getContainer();
container.set("FIELD1", "DATA1");
container.set("FIELD2", "DATA2");
container.set("FIELD3", "DATA3");
container.set("FIELD4", "DATA4");
query.insert(container);
}
Read
Reading one or several records from table.
Read one record
void read() {
DBAction query = database.table("TABLENAME")
.index("00")
.selection("FIELD3", "FIELD4")
.build();
DBContainer container = query.getContainer();
container.set("FIELD1", "DATA1");
container.set("FIELD2", "DATA2");
if(query.read(container)) {
String message = container.get("FIELD3");
String data = container.get("FIELD4");
//Use found record(s) as intended
}
}
Read multiple records
void multiRead() {
DBAction query = database.table("TABLENAME")
.index("00")
.selection("FIELD3", "FIELD4")
.build();
DBContainer container = query.getContainer();
container.set("FIELD1", "DATA1");
container.set("FIELD2", "DATA2");
query.readAll(container, NUMBERofRECORDS, callback);
}
Closure<?> callback = { DBContainer container ->
String message = container.get("FIELD3");
String data = container.get("FIELD4");
//Use found record(s) as intended
}
Read multiple records with filter
void filteredMultiRead() {
ExpressionFactory expression = database.getExpressionFactory("TABLENAME");
expression = expression.eq("FIELD3", "DATA3").and(expression.lt("FIELD1", "DATA1"));
DBAction query = database.table("TABLENAME")
.index("00")
.matching(expression)
.selection("FIELD3", "FIELD4")
.build();
DBContainer container = query.getContainer();
container.set("FIELD1", "DATA1");
container.set("FIELD2", "DATA2");
query.readAll(container, NUMBERofRECORDS, callback);
}
Closure<?> callback = { DBContainer container ->
String message = container.get("FIELD3");
String data = container.get("FIELD4");
//Use found record(s) as intended
}
Update
Update existing record(s) in table
void update() {
DBAction query = database.table("TABLENAME")
.index("00")
.build();
DBContainer container = query.getContainer();
container.set("FIELD1", "DATA1");
container.set("FIELD2", "DATA2");
query.insert(container, { LockedResult updateRecord ->
updateRecord.set("FIELD3", "DATA3");
updateRecord.update();
});
}
Delete
Delete record(s) from table
void delete() {
DBAction query = database.table("TABLENAME")
.index("00")
.build();
DBContainer container = query.getContainer();
container.set("FIELD1", "DATA1");
container.set("FIELD2", "DATA2");
query.readLock(container, callback);
}
Closure<?> callback = { LockedResult lockedResult ->
lockedResult.delete();
}