Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen

Like dokumenter
Videregående programmering 6

Eksamen i Internetteknologi Fagkode: ITE1526

SQL 3: Opprette tabeller, datainnsetting og utsnitt

Oppgave 1 (Opprett en database og en tabell)

Tilkobling og Triggere

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

Miniverden og ER- modell

Datamodellering og databaser SQL, del 2

Databaser kort intro. Tom Heine Nätt

1. SQL datadefinisjon og manipulering

HØGSKOLEN I SØR-TRØNDELAG

Implementering av caching ved hjelp av Spring. Christian Vestøl

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Datamodellering og databaser SQL, del 2

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

Datamodellering og databaser SQL, del 2

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB?

Øvingsoppgave uke 3. Fanger i fengsel

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i Internetteknologi Fagkode: IVA1379

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

Java Database Connectivity (JDBC) Norvald H. Ryeng

Å programmere databasetjeneren JavaDB. Programkoden ligger i databasen

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamen i IBE102 Webutvikling Våren 2017.

Paul Hinsch. MICADO AS Utviklet MapBasic applikasjoner i 10 år. Registreringsknapper og Objektdialog

Repetisjon: Normalformer og SQL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring -

Oppgaver Oppgave a: Sett opp mulige relasjoner

Sikkerhet og tilgangskontroll i RDBMS-er

Bruke SQL fra Python. Med Psycopg2

Applikasjonsutvikling med databaser

Metaspråket for å beskrive grammatikk

JDBC. Java DataBase Connectivity SQL i Java Læreboken: 8.5, s Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen

ORDBMS og OODBMS i praksis

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

Løsningsforslag Test 2

Integritetsregler i SQL. Primærnøkler

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Delinnlevering 2. INF1050, våren Inge Svale Hauger Handagard (ishandag) Tor Hildrum (thildru)

UNIVERSITETET I OSLO

Eksamen i Internetteknologi Fagkode: ITE1526

Repetisjon. INF gruppe 13

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Integritetsregler i SQL

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

/** * A cache of words and their stems */ static private Map<String, String> cache = new WeakHashMap<String, String>();

Produktdokumentasjon

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Obligatorisk oppgave 3 i Databaseadministrasjon.

Fag TDT4145 Datamodellering og databasesystemer Øving 3: Relasjonsalgebra og SQL

INF 1010, vår 2005 Løsningsforslag uke 11

J2EE og distribuerte systemer Leksjon 10: Entity Beans (BMP)

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF1010. Grensesnittet Comparable<T>

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

J2EE. CMP Entity Beans, Transaksjoner, JSP

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Utvikling fra kjernen og ut

TOD063 Datastrukturer og algoritmer

SQL Structured Query Language

IN2090 Introduksjon til databaser

Del 3: Evaluere uttrykk

Databaser: Relasjonsmodellen, del I

INF1000: Forelesning 7


INF2100. Oppgave 1, 2 og 3. Løsningsforslag til oppgaver 23. og 24. september Her er det mange mulige løsninger her er én: import java.io.

HØGSKOLEN I SØR-TRØNDELAG

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

MySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL

Jentetreff INF1000 Debugging i Java

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1

Integritetsregler i SQL

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

Kalkulator-leksjonen (nesten ferdig)

IN2090 Databaser og datamodellering. 08 Typer og skranker

Databasers typesystem. IN2090 Databaser og datamodellering. 08 Typer og skranker. SQL-standarden vs. RDBMSer. Hvilke datatyper har vi

INF2100. Oppgave 1. Oppgave 2 4. Løsningsforslag til oppgaver uke 40 og Se figur 1 på neste side.

INF1010 våren 2018 tirsdag 23. januar

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon

INF1000: Forelesning 7. Konstruktører Static

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

IN Notat om I/O i Java

1. Innføring i bruk av MySQL Query Browser

INF2100. Oppgaver 23. og 24. september 2010

INF3100 V2018 Obligatorisk oppgave nr. 2

>>12 Arbeide med MySQL

10. ASP og SQL Innledning Recordset-objektet. Innhold. Referanse til læreboka Kapittel Se detaljer nedenfor.

GUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer

Eksamen Objektorientert Programmering 2012

Feilmelding Årsak Løsning

Transkript:

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen

Hva er ibatis Rammeverk laget for: Forenkling av database oppkoblinger Separering av SQL kode fra kildekode Data access objects (DAO) Objektpresentasjon av data

Komme igang med ibatis Du kan laste ned ibatis bibiliotekfilen fra http://ibatis.apache.org JAR-filen legges i CLASSPATH Inkludere dette i kildekoden: import com.ibatis.sqlmap.client.sqlmapclient; import com.ibatis.sqlmap.client.sqlmapclientbuilder; import com.ibatis.common.resources.resources;

Komme igang med ibatis Filer du trenger:.properties-fil SQLMap konfigurasjonsfil (.xml) SQLMap ressursfil (.xml) per objekt Dataobjekt (feks javaklasse)

Eksempel.properties fil (mysql) Denne filen inneholder oppkoblingsdetaljer mot databasen. driver=com.mysql.jdbc.driver url=jdbc:mysql://localhost:3306/mindatabase username=minbruker password=mittpassord

Eksempel SQLMap konfigurasjon <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sqlmapconfig PUBLIC "-//ibatis.apache.org//dtd SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlmapconfig> <pro pe rtie s re s o urc e ="c onfig /da ta ba s e.pro pe rtie s "/> <transactionmanager type="jdbc" commitrequired="false"> <datasource type="simple"> <property name="jdbc.driver" value="${driver}"/> <property name="jdbc.connectionurl" value="${url}"/> <property name="jdbc.username" value="${username}"/> <property name="jdbc.password" value="${password}"/> </datasource> </transactionmanager> <s qlma p re s o urc e ="da ta /Ans a tt.xm l"/> </sqlmapconfig>

Eksempel tabell i database ansatt.sql ------------------------------------------------------ CREATE TABLE ANSATT( ANSATT_ID NUMBER (5, 0) NOT NULL, ANSATT_FIRST_NAME VARCHAR (40) NOT NULL, ANSATT_LAST_NAME VARCHAR (40) NOT NULL, ANSATT_BIRTH_DATE DATETIME, ANSATT_SALARY NUMBER (7, 2) NOT NULL, PRIMARY KEY (ANSATT_ID) )

Eksempel dataobjekt Ansatt.java ------------------------------------------------------ Public class Ansatt { private int id; private String firstname; private String lastname; private Date birthdate; private double salary; public int getid() { return id; } public void setid(int id) { this.id = id; } } //.. getters and setters

Eksempel på ressursfil Ansatt.xml ------------------------------------------------------------------ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sqlmap PUBLIC "-//ibatis.apache.org//dtd SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlmap namespace="ansatt"> <select id="getansatt" parameterclass= int resultclass="ansatt"> SELECT ANSATT_ID as id, ANSATT_FIRST_NAME as firstname, ANSATT_LAST_NAME as lastname, ANSATT_BIRTH_DATE as birthdate, ANSATT_SALARY as salary, FROM ANSATT WHERE ANSATT_ID = #value# </select>

Eksempel på ressursfil forts. <insert id="insertansatt" parameterclass="ansatt"> INSERT INTO PERSON (ANSATT_ID, ANSATT_FIRST_NAME, ANSATT_LAST_NAME, ANSATT_BIRTH_DATE, ANSATT_SALARY) VALUES (#id#, #firstname#, #lastname#, #birthdate#, #salary#) </insert> <delete id="deleteansatt" parameterclass="ansatt"> DELETE FROM ANSATT WHERE ANSATT_ID = #id# </delete>

Eksempel på ressursfil forts. <update id="updateansatt" parameterclass="ansatt"> UPDATE ANSATT SET ANSATT_FIRST_NAME = #firstname#, ANSATT_LAST_NAME = #lastname#, ANSATT_BIRTH_DATE = #birthdate#, ANSATT_SALARY = #salary# WHERE ANSATT_ID = #id# </update> </sqlmap>

Hvordan bruke ibatis Initialisere SQLMap klassen public class MyProg { priva te s ta tic fina l S qlma pc lie nt s qlma p; private init() { try { S tring re s o urc e = c o nfig /s qlma p-c o nfig.xm l ; Re a de r re a de r = R e s o urc e s.g e tr e s o urc e As R e a de r (re s o urc e ); s qlma p = S qlma pc lie ntb uilde r.builds qlma pc lie nt(re a de r); } catch (Exception e) { //.. Feilmelding her. Drep applikasjonen } } //... }

Hvordan bruke ibatis Hente et objekt fra databasen // henter objekt med ANSATT_ID = 5 Integer ansattpk = new Integer(5); Ans a tt a ns a tt = (Ans a tt)s qlma p.que ryf o robje c t("g e tans a tt", a ns a ttp k); Hente flere objekter fra databasen L is t a ns a tte = s qlma p.que ryf orl is t("g e talle Ans a tte "); Oppdatere et objekt i databasen ansatt.setsalary(50000.0) // you wish :D s qlma p.upda te ("upda te Ans a tt", a ns a tt);

Hvordan bruke ibatis Hvordan legge inn ett objekt Ansatt nyansatt = new Ansatt(); nyansatt.setid(123); nyansatt.setfirstname("frode"); nyansatt.setlastname("eika Sandnes"); nyansatt.setbirthdate(null); nyansatt.setsalary(10000.0);.. s qlma p.ins e rt("ins e rtans a tt", nyans a tt);.. Hvordan slettet ett objekt s qlma p.de le te ("de le te Ans a tt",nyans a tt);

Konklusjon Våre synspunkter: + Lett å bruke + Lett å lære seg + Ryddigere kode, ved å skille sql og kildekode + Cachede SQL oppslag (ytelse) - Flere filer å forholde seg til - Lenger responstid fra databasen

Spørsmål?