Apache Empire-db - Apache Empire-db

Apache Empire-db
Apache Empire-db Logo.svg
Tuzuvchi (lar)Apache dasturiy ta'minot fondi
Barqaror chiqish
2.4.7 / 31 oktyabr 2018 yil; 2 yil oldin (2018-10-31)
OmborEmpireDB ombori
YozilganJava
Operatsion tizimO'zaro faoliyat platforma
TuriQat'iylik asoslari
LitsenziyaApache litsenziyasi 2.0
Veb-saytimperiya-db.apache.org

Apache Empire-db kirish uchun yuqori darajadagi ob'ektga yo'naltirilgan API ta'minlaydigan Java kutubxonasi relyatsion ma'lumotlar bazasini boshqarish tizimlari (RDBMS) orqali JDBC. Apache Empire-db ochiq manbali va ostida berilgan Apache litsenziyasi 2.0 dan Apache dasturiy ta'minot fondi.

Ga solishtirganda Ob'ekt-relyatsion xaritalash (ORM) yoki shunga o'xshash boshqa ma'lumotlar qat'iyligi echimlari Kutish holati, iBATIS yoki TopLink Empire-db oddiy (eski) Java ob'ektini xaritalashni ta'minlash uchun XML fayllari yoki Java izohlarini ishlatmaydi (POJO ma'lumotlar bazasi jadvallari, ko'rinishlari va ustunlariga. Buning o'rniga Empire-db ma'lumotlar bazasi modelini va API-ni tasvirlash uchun Java ob'ekt modelidan foydalanadi va deyarli faqat ob'ektlar havolalari bilan ishlaydi. torli harflar.

Empire-db-ning maqsadi kompilyatsiya vaqtining xavfsizligini oshirish va metama'lumotlarni qisqartirilishini kamaytirish orqali dasturiy ta'minotning yanada sifatli va yaxshilangan texnik ta'minotini ta'minlashdir. Qo'shimcha dasturlar ustidan to'liq nazorat tufayli yanada yaxshi ishlashi foyda keltirishi mumkin SQL bayonotlari va ularni ishlab chiqaruvchi tomonidan bajarilishi aksariyat OR-xaritalash echimlari bilan taqqoslaganda.

Asosiy afzalliklari

Empire-db-ning asosiy kuchi - bu o'zboshimchalik bilan tanlash, yangilash, qo'shish yoki o'chirish uchun dinamik SQL yaratish uchun API, bu faqat namunaviy ob'ektlarga murojaat qiladigan Java usullaridan iborat. Bu tip-xavfsizlikni ta'minlaydi va koddagi ismlar yoki iboralar uchun mag'lubiyatga oid yozuvlardan foydalanishni deyarli butunlay yo'q qiladi. Bundan tashqari, DBMS mustaqilligiga ulanadigan haydovchi modeli orqali erishiladi.

Jadval va ustun ob'ektlariga havolalardan foydalanish kompilyatsiya vaqtining xavfsizligini sezilarli darajada yaxshilaydi va shu bilan sinov hajmini kamaytiradi. Ijobiy ta'sir sifatida IDE kodini to'ldirish ma'lumotlar modelini ko'rib chiqish uchun ishlatilishi mumkin, samaradorlikni oshiradi va boshqa tashqi vositalar yoki IDE-plaginlariga ehtiyojni yo'q qiladi.

Bundan tashqari, ob'ekt modeli ma'lumotlar maydonining meta-ma'lumotlariga, masalan, maydon ma'lumotlarining turi, maydonning maksimal uzunligi, maydon majburiy bo'lganligi va maydon qiymatlari uchun cheklangan tanlov kabi xavfsiz va oson kirishni ta'minlaydi. Meta-ma'lumotlar foydalanuvchiga kengaytiriladi va DBMS bilan bog'liq metama'lumotlar bilan chegaralanmaydi. Meta-ma'lumotlarning mavjudligi umumiy kodni rag'batlantiradi va dastur qatlamlarida ortiqcha ishlarni yo'q qiladi.

Bir qarashda xususiyatlar

  • Ma'lumotlar modelining Java ob'ekti modeli orqali ta'rifi XML sxemalari yoki izohlarini o'rganish zaruratini qoldiradi va foydalanuvchi tomonidan to'xtatib turish va kengaytmalarga osonlikcha imkon beradi.
  • Portativ RDBMS mustaqil yozuvlar bilan ishlash va buyruqlar ta'rifi kabi turli xil ma'lumotlar bazalarini qo'llab-quvvatlaydi Oracle, Microsoft SQL Server, MySQL, Derbi, H2 va HSQLDB (2.0.5 versiyasi bo'yicha)
  • Ob'ekt ta'rifidan maqsadli ma'lumotlar bazasi uchun yoki jadvallar, ko'rinishlar, ustunlar va munosabatlar kabi alohida ob'ektlar uchun DDL yaratish.
  • Dinamik SQL buyruqlar yaratish uchun xavfsiz xavfsiz API faqat satr harflari o'rniga API usullari va ob'ekt ma'lumotlari yordamida SQL bayonotlarini dinamik ravishda yaratishga imkon beradi. Bu sinov va texnik xizmat ko'rsatishni soddalashtiradigan yuqori darajadagi xavfsizlikni ta'minlaydi.
  • Java kodining kamaytirilgan miqdori va POJO-larga alternativa sifatida dinamik loviya orqali maydon va metama'lumotlarga kirishning kuchli ushlanishi. Bu hatto ish vaqtida ma'lumotlar modelini o'zgartirishga (DDL) imkon beradi.
  • Yozuv holatini avtomatik ravishda kuzatib borish va maydonni o'zgartirish (aka "iflos tekshirish") faqat o'zgartirilgan maydonlarni kiritish / yangilash uchun.
  • Vaqt tamg'asi ustuni orqali optimistik qulflashni qo'llab-quvvatlash.
  • Har doim to'liq ma'lumotlar bazasi bilan ishlashga hojat yo'q. Ma'lumotlarni kerakli darajada ta'minlash uchun so'rovlar yarating va natijada, masalan, har qanday turdagi POJO ro'yxati sifatida mos keladigan xususiyatlarni o'rnatuvchi yoki konstruktor bilan oling.
  • Har qanday arxitektura yoki ramka bilan sodda birlashishga imkon beradigan nol konfiguratsiya iziga ega engil va passiv kutubxona.

Misol

Masalan, ikkita jadval deb nomlangan ma'lumotlar bazasini ko'rib chiqing Xodimlar va Bo'limlar buning uchun ma'lum bir cheklovlar va berilgan buyurtma bilan ma'lum bir formatdagi xodimlarning ro'yxati olinishi kerak.

Tegishli Oracle sintaksisining SQL bayonoti quyidagicha qabul qilinadi:

    SELECT t1.EMPLOYEE_ID,            t1.FAMILIYA || ', ' || t1.ISM AS NOM,            t2.BO'LIM    Dan (XODIMLAR t1           Ichki QO'SHILING KAFEDRALAR t2 YOQDI t1.DEPARTMENT_ID = t2.DEPARTMENT_ID)    Qaerda yuqori(t1.FAMILIYA) Yoqdi yuqori('Foo%')       VA t1.Nafaqaga chiqqan=0    Buyurtma BILAN t1.FAMILIYA, t1.ISM

Ushbu SQL iborasi Empire-db buyrug'i API yordamida quyidagi kabi ob'ekt modeli havolalari yordamida tuzilishi mumkin:

    SampleDB db = getDatabase();    // Yorliqlarni e'lon qilish (kerak emas, lekin qulay)    SampleDB.Xodimlar EMP = db.XODIMLAR;    SampleDB.Bo'limlar DEP = db.KAFEDRALAR;    // Buyruqlar ob'ektini yarating    DBCommand smd = db.yaratish buyrug'i();    // ustunlarni tanlang    smd.tanlang(EMP.EMPLOYEE_ID);    smd.tanlang(EMP.FAMILIYA.qo'shib qo'ying(", ").qo'shib qo'ying(EMP.ISM).kabi("NAME"));    smd.tanlang(DEP.BO'LIM);    // Jadvallarga qo'shiling    smd.qo'shilish  (EMP.DEPARTMENT_ID, DEP.DEPARTMENT_ID);    // Cheklovlarni o'rnating    smd.qayerda(EMP.FAMILIYA.likeUpper("Foo%"));    smd.qayerda(EMP.Nafaqaga chiqqan.bu(yolg'on));    // Buyurtmani o'rnating    smd.Buyurtma asosida(EMP.FAMILIYA);    smd.Buyurtma asosida(EMP.ISM);

So'rovni bajarish va so'rov natijalariga ega bo'lgan POJO ro'yxatini olish uchun quyidagi kod ishlatilishi mumkin:

    // Maqsadli ob'ektlar uchun sinf ta'rifi    jamoat sinf EmployeeInfo {        xususiy int ishchiId;        xususiy Ip ism;        xususiy Ip Bo'lim;        // Getter's and Setters barcha xususiyatlar uchun        // yoki maydonlarni ishlatadigan ommaviy Konstruktor        jamoat olish...        jamoat o'rnatilgan...    }    // Yuqorida yaratilgan cmd ob'ekti yordamida xodimlar ro'yxatini oling    DBReader o'quvchi = yangi DBReader();    harakat qilib ko'ring {        o'quvchi.ochiq(smd, getConnection());        Ro'yxat<EmployeeInfo> empList = o'quvchi.getBeanList(EmployeeInfo.sinf);    } nihoyat {        o'quvchi.yaqin()    }

Empire-db shuningdek ob'ektga havolalar yoki so'rov natijalarini XML sifatida olish orqali maydonga kirishni qo'llab-quvvatlaydi.

Tarix

Empire-db dastlab Germaniyaning dasturiy ta'minot ishlab chiqaruvchi ESTEAM Software kompaniyasida ishlab chiqilgan bo'lib, Empire-db dan turli xil tarmoqlar uchun turli xil dasturlarni ishlab chiqish uchun foydalangan.

2008 yil yanvar oyida Empire-db rasmiy ravishda ochiq manbaga aylantirildi va SourceForge.net saytida birinchi bo'lib nashr etildi.

2008 yil iyun oyida Empire-db uchun Apache Software Foundation-ga Apache Incubator loyihasi bo'lish taklifi yuborildi. 2008 yil iyul oyida Empire-db inkubatsiyaga qabul qilindi va dasturiy ta'minotga bo'lgan barcha huquqlar Apache Foundation-ga o'tkazildi.

2008 yil oktyabr oyida Empire-db 2.0.4 birinchi to'plam Apache inkubatori bo'lib, barcha paket nomlari org.apache.empire bilan boshlandi.

Shuningdek qarang

Tashqi havolalar