1 / 22

Apache Cayenne

Java database persistence framework. Apache Cayenne. SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr; user.getProperty(”adr.postnr.by”);. Bakgrunn. Vanskelig å lage sikker jdbc-kode Vanskelig å oppnå persistence

tess
Download Presentation

Apache Cayenne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java database persistence framework Apache Cayenne

  2. SELECT by FROM postnr AS pWHERE ( SELECT DISTINCT postnrFROM addr AS a WHERE user.adrId = a.Id ) = p.postnr; • user.getProperty(”adr.postnr.by”);

  3. Bakgrunn • Vanskelig å lage sikker jdbc-kode • Vanskelig å oppnå persistence • Vanskelig å kunne alt

  4. Hva går det ut på? • Forenkle bruk av databaser i Java • Persistence • Caching

  5. Hvordan virker det?

  6. Eksempel på bruk Vi skal lage og bruke databasen som modellen og det logiske skjemaet viser; relasjonene er navngitte da dette vil bli viktig senere. Student(id, navn) Lærer(id, navn) Kurs(id, tittel, lærer_id*) Kursliste(kurs_id*, student_id*)

  7. Bruk: environment Opprett et nytt prosjekt i din IDE (for eksempel Eclipse eller Netbeans). Prosjektets build path må utvides med Cayennes bibliotek. Vi bruker Derby som db, denne må også inn da den kjøres i embedded mode.

  8. Bruk: CayenneModeller I stedet for å skrive XML kan man bruke dette programmet som følger med til å ”mappe” objekter <> tabeller. Vi setter først opp en forbindelse til databasen. D:/testdb henviser her til hvor databasen fysisk skal ligge/ligger. Selvsagt valgfritt!

  9. Bruk: CayenneModeller Et DataDomain er en virtuell datakilde, som kan bestå av data fra en eller flere ”fysiske” kilder. En kilde kalles en DataNode, og er en database. Vi bruker den vi nettopp har satt opp for Derby.

  10. Bruk: CayenneModeller Et DataMap brukes til å mappe Java-objekter mot databasetabeller. Et DataMap for hver DataNode. Prosjektet lagres under /src-katalogen til prosjektet du har opprettet. Det dukker da opp flere XML-filer.

  11. Bruk: dbEntity Tilsvarer det som blir en tabell i en database. Attributer angis slik man er vant med, med navn, type og andre alternativ, som PK (Primary Key).

  12. … og så har me juksa litt…

  13. Bruk: Relationships Brukes til å lage fremmednøkler, dvs. koble sammen tabeller. Et aber er at attributter som skal være fremmednøkler må legges inn som vanlige attributter før relasjonen skapes.

  14. Bruk: objEntity Tilsvarer en Java-klasse, og genereres med tilsvarende datafelt. Det er en objEntity for hver dbEntity. Logisk, eller hva?

  15. Bruk: generer tabeller Tools > Generate database schema

  16. Bruk: generer Java Sett først en default package for klassene dine, og klikk ’update’. Dette oppdaterer alle objEntities i dette DataMap’et. Velg så Tools > Generate Classes og skriv inn et pakkenavn for superklassene hvis du vil at disse skal ligge adskilt.

  17. Bruk: Eclipse De genererte java-klassene (db) og superklasser (db.auto). Legg merke til at superklassene arver fra CayenneDataObject.

  18. Pros: CayenneModeller • Mye enklere enn å skrive XML selv • Lettforståelig abstraksjon

  19. Cons: CayenneModeller • Må selv legge inn fremmednøkler, noe som burde ha blitt gjort automatisk gjennom relationship-editoren. • Ikke det mest brukervennlige programmet. Feilmeldingene er for eksempel ikke spesielt nyttige.

  20. Demo

  21. Oppsummering, alternativer • SQL gjennom jdbc-connector • Rotete • Tett kopling • Mye jobb • Hibernate • Mange muligheter • Vanskelig å bruke ANBEFALES!

  22. Spørsmål? Gruppe 3: Thomas Arp Ingleiv Johansen Vidar Fjellestad Johnny Horvi

More Related