28. september 2001 - 12:04Der er
5 kommentarer og 1 løsning
Databasetilgang
Hvordan laver I databasetilgang?
Jeg har selv en databasepakke, som jeg er ganske godt tilfreds med, men jeg ville gerne se, hvordan andre håndterer databaser - det kan jo være, jeg kunne blive inspireret og få ideer til forbedringer af mit eget.
I _behøver_ ikke poste nogen kode, men blot en simpel gennemgang af hvordan det virker.
Ved ikke helt om 30 points er for meget eller for lidt, for jeg har ikke rigtigt brug for jeres forslag, men på den anden side set synes jeg, det kunne være sjovt at se andres løsninger.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
DatabaseProxy - håndterer adgangen til en enkelt database (eller den samme database med forskellige logins og/eller passwords)
TabelObjekt - databærende klasse for klasser udenfor Database-pakken; laver kald ned i SQLInterface, når der skal laves søgninger.
SQLInterface - udvidet singleton-klasse (der er kun een instans per ODBCNavn+Login+Password), som snakker med databasen.
Al magien ligger for så vidt i TabelObjekt. Når DatabaseProxy startes op forbinder den med databasen (via SQLInterface) og får en oversigt over tabeller og tabellernes udseende (metadata). Disse informationer bruger DatabaseProxy til at lave en TabelObjekt-skabelon for hver tabel. Disse skabeloner er nu skrædersyet til hver tabel.
Når der søges, laves en klon af den relevante tabel (hvis der skal søges i flere tabeller, laves der en klon af hver af de relevante tabeller; disse kloner samles i et enkelt objekt, som passer \"ned over\" de relevante tabeller). Dette klon-objekt laver nu et kald til SQLInterface, som returnerer et java.sql.resultSet. Dette resultset tømmes for data, som gemmes i et to-dimensionelt array i TabelObjekt-objektet (ja - TabelObjekt er et tåbeligt navn).
Når dette er tilendebragt, returneres TabelObjekt-objektet til den forespørgende klasse, som kan hente alle relevante informationer ud af den: Tabelfeltnavne (med de relevante tabelnavne som præfix, f.eks. \"Tabelnavn.Tabelfeltnavn\") Tabelnavne Tabelfeltdatatyper En enkelt resultatrække Hele resultatsættet (alle søgeresultater)
Den største ulempe, jeg har fundet, ved dette system, er at hvis jeg laver en join-søgning, så ender jeg ofte med flere ens resultatrækker ... det har jeg ikke lige fundet en løsning på endnu ...
Beklager forvirringen ... på en eller anden måde, røg mit indlæg ind under den forkerte gruppe.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.