База данных
Содержание
Каждая модель имеет связанную с ней базу данных. Связанная база данных только одна.
Для работы с базой данных предназначен интерфейс jandcode.core.dbm.mdb.Mdb
.
Он содержит методы для работы с конкретным соединением с базой данных.
Пример:
// создаем экземпляр Mdb
Mdb mdb = getModel().createMdb()
// устанавливаем соединение
mdb.connect()
try {
// выполняем запросы
Store store = mdb.loadQuery("select * from tab1 where a>:param1", [param1: 100])
mdb.execQuery("update tab1 set a=1 where id=:id", [id: 100])
} finally {
// разрываем соединение
mdb.disconnect()
}
Классы-утилиты для базы данных
Классы-утилиты для базы данных являются обертками вокруг экземпляра
jandcode.core.dbm.mdb.Mdb
и предназначены для реализации конкретных
запросов к базе данных.
Пример:
import jandcode.core.dbm.mdb.*
import jandcode.core.store.*
class MdbUtils1 extends BaseMdbUtils {
MdbUtils1(Mdb mdb) {
super(mdb)
}
Store load1(int param1) {
return mdb.loadQuery("select * from tab1 where a>:param1", [param1: param1])
}
}
Особенность таких классов:
- они должны принимать в конструкторе экземпляр
jandcode.core.dbm.mdb.Mdb
и сохранить его во внутренней структуре - экземпляр mdb передается с уже установленным и настроенным соединением, т.е. не нужно вызывать методы connect, disconnect. За соединение отвечает кто-то вне этих классов
- классы-утилиты легкие и одноразовые: создали, попользовались, забыли. Их экземляры нельзя где-то хранить