mini orm untuk delphi
Perpustakaan adalah percobaan dengan RTTI dan generik untuk mendapatkan akses sederhana dan berorientasi objek ke data dari database relasional.
var
ORM : TransfORM;
begin
ORM := TransfORM.Create();
Langkah kedua adalah mendefinisikan antarmuka sesuai dengan rumus:
I[TableName] = interface(ItransfORMEntity)
function [ColumnNameA] : TransfORMField;
function [ColumnNameB] : TransfORMField;
function [ColumnNameC] : TransfORMField;
[...]
end;
... di mana Tablename adalah nama tabel dalam database dan kolomnamea, columnNameB dll. Adalah nama kolom yang ingin Anda akses di antarmuka yang diberikan (mereka tidak harus semuanya).
Langkah terakhir adalah mendapatkan instance antarmuka yang berisi data baris tertentu dari tabel. Untuk melakukan ini, kami menyebut metode GetInstance, memberikan nilai kunci utama.
var
Entity : I[TableName];
PKValue : Integer;
begin
PKValue := 100; //primary key value
Entity := ORM.GetInstance<I[TableName], [PKType]>(PKValue, FDConnection);
Selain akses ke bidang tabel, kelas entitas juga mengimplementasikan metode dari antarmuka:
ItransfORMEntity = interface(IInvokable)
function GetConnection(): TFDConnection;
function GetImmediateCommit(): Boolean;
function HasChanges() : Boolean;
function PrimaryKeyField() : TransfORMField;
procedure Commit(aInSubthread : Boolean = False);
procedure SetImmediateCommit(const aValue: Boolean);
property ImmediateCommit: Boolean read GetImmediateCommit write SetImmediateCommit;
property Connection: TFDConnection read GetConnection;
end;
Keterbatasan saat ini:
Perpustakaan menggunakan: spring4d, firedac