Web- og serverprogrammering

Størrelse: px
Starte visningen fra side:

Download "Web- og serverprogrammering"

Transkript

1 Dette materiale er under Åben Dokumentlicens, se Web- og serverprogrammering Databasekommunikation - dag 7 Strategier til databaseadgang JDBC (Java DataBase Connectivity) Evt: JDBC RowSet Login-eksempel: Javabønne med JDBC JPA - Java Persistence API Læsning: WJSP 5, WJSP

2 JDBC databaseadgang Indlæse driveren Med Java under Windows følger en standard JDBC-ODBC-bro med, så man kan kontakte alle datakilder, der er defineret under ODBC: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Er det en anden database, skal man have en jar-fil med en driver fra producenten. Nyeste drivere kan findes på Driver til en Oracle-database (hedder typisk classes12.zip): Class.forName("oracle.jdbc.driver.OracleDriver"); Driver til en MySQL-database (hentes på Class.forName("com.mysql.jdbc.Driver") Etablere forbindelsen Herefter kan man oprette forbindelsen med (for en ODBC-driver): Connection forb = DriverManager.getConnection("jdbc:odbc:datakilde1"); Datakildens navn (her "datakilde1") skal være defineret i Windows. Databasedrivere JDBC-drivere findes i fire typer: Type 1: JDBC-ODBC-broen. Langsomste og kun til Windows. Type 2: Drivere skrevet i C eller C++ til den specifikke platform (normalt de hurtigste). Type 3: Platformsuafhængig (ren Java-) driver med databaseuafhængig kommunikationsprotokol Type 4: Platformsuafhængig (ren Java-) driver skrevet til at kommunikere med en specifik database (mest udbredte og næsten lige så hurtig som type 2). Oracle-database: Connection forb = DriverManager.getConnection( "jdbc:oracle:thin:@ora.javabog.dk:1521:student","jacob","jacob"); MySQL-database: DriverManager.getConnection("jdbc:mysql:///jacob","root","xyz");

3 JDBC databaseadgang Kommunikere med databasen import java.sql.*; public class Databasekommunikation public static void main(string[] arg) throws Exception Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection forb = DriverManager.getConnection("jdbc:odbc:datakilde1"); Statement stmt = forb.createstatement(); // forsøg at slette tabel hvis den ikke findes opstår en fejl som fanges try stmt.executeupdate("drop table KUNDER"); catch (Exception e) stmt.executeupdate("create table KUNDER (NAVN varchar(32), KREDIT number)"); stmt.executeupdate("insert into KUNDER values('jacob', 1799)"); // indsæt data fra variabler String navn = "Hans"; double kredit = 500; stmt.executeupdate("insert into KUNDER(NAVN,KREDIT) values('"+navn+"', "+kredit+")"); // forespørgsler ResultSet rs = stmt.executequery("select NAVN, KREDIT from KUNDER"); while (rs.next()) navn = rs.getstring("navn"); kredit = rs.getdouble("kredit"); System.out.println(navn+" "+kredit); Jacob Brian 0.0 Hans 500.0

4 JDBC databaseadgang

5 Persistensproblemet Strategier til databaseadgang Rigtig mange muligheder, f.eks.: JDBC-kode blandet sammen med resten af koden JDBC-kode i dedikerede klasser JDBC RowSet - ResultSet, der også opdaterer databasen CachedRowSet - kan eksistere løsrevet fra databasen WebRowSet giver XML, der kan transformeres, f.eks. med XSLT (XSL style sheet), eller Javas XML-behandling EJB - Enterprise JavaBeans - ét serverobjekt pr. række JPA - Java Persistence AP - ét objekt pr. række Proprietære løsninger Giver mulighed for grafiske databasekomponenter Oracle JDeveloper ADF - Application Developer Framework Borland JBuilder: DataModule IBM WebSphere Studio

6 JDBC-ODBC-bro til Access-fil Eksempel: 1. Denne computer 2. Kontrolpanel 3. Administration

7 MySQL-database Installér MySQL Hent fra mysql.com test-database god i starten Grafiske værktøjer Installér JDBC-driver Connector/J fra mysql.com Læg JAR-fil i java/jre/lib/ext/ Kontakt test-database: Class.forName("com.mysql.jdbc.Driver"); Connection forb = DriverManager.getConnection("jdbc:mysql:///test");

8 Forberedte SQL-kommandoer import java.sql.*; public class ForberedtSQL public static void main(string[] arg) throws Exception Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql:///test"); // Forbered kommandoerne til databasen, f.eks. i starten af programmet: PreparedStatement indsætpstm = con.preparestatement( "INSERT INTO kunder (navn,kredit) VALUES(?,?)"); PreparedStatement hentpstm = con.preparestatement( "SELECT navn, kredit FROM kunder WHERE navn=?"); // under programudførelsen kan de forberedte kommandoer udføres mange gange: for (int i=0; i<100; i++) indsætpstm.setstring(1, "Brian"); indsætpstm.setint(2, i); indsætpstm.execute(); indsætpstm.setstring(1, "Hans' venner"); // bemærk ' i strengen indsætpstm.setint(2, 1042+i); indsætpstm.execute(); hentpstm.setstring(1, "Hans' venner"); ResultSet rs = hentpstm.executequery(); // bemærk ' i SQL forespørgslen // man løber igennem svaret som man plejer while (rs.next()) String navn = rs.getstring(1); double kredit = rs.getdouble(2); System.out.println(navn+" "+kredit);

9 Eksempel: Gæstebog Se WJSP, s. 98 Optimering Drivere Prepared statement Batch (kø) Stored procedures Forbindelsespujler

10 Samlede batch-opdateringer - venter ikke på svar fra DBMS mellem opdateringer - data-integritet...? import java.sql.*; public class Batchopdateringer public static void main(string[] arg) throws Exception Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql:///test"); PreparedStatement pstmt = con.preparestatement( "INSERT INTO kunder (navn,kredit) VALUES(?,?)"); pstmt.setstring(1, "Hans"); pstmt.setint(2, 142); pstmt.addbatch(); pstmt.setstring(1, "Grethe"); pstmt.setint(2, 242); pstmt.addbatch(); // send ændringer til databasen pstmt.executebatch();

11 Transaktioner import java.sql.*; public class UdenAutocommit public static void main(string[] arg) throws Exception Class.forName("oracle.jdbc.driver.OracleDriver"); Connection forb = DriverManager.getConnection( "jdbc:oracle:thin:@ora.javabog.dk:1521:student","jacob","jacob"); try forb.setautocommit(false); Statement stmt = forb.createstatement(); stmt.executeupdate("insert into KUNDER(NAVN,KREDIT) values('jacob', 17)"); stmt.executeupdate("insert into KUNDER(NAVN,KREDIT) values('brian', 0)"); // flere transaktioner... System.err.println("Alt gik godt, gør ændringerne forpligtigende"); forb.commit(); catch (Exception e) e.printstacktrace(); System.err.println("Noget gik galt! Annullerer ændringerne..."); forb.rollback(); finally // Husk at sætte auto commit tilbage, af hensyn til andre transaktioner forb.setautocommit(true);

12 Rydde op med finally Finally-blokke bliver altid udført, selv når undtagelsen ikke fanges, eller der hoppes ud af metoden på anden vis public void metode1() try... if (...) return; if (...) throw new IllegalArgumentException(...);... catch (NullPointerException e) System.out.println("Intern fejl:"); e.printstacktrace(); finally System.out.println("Dette bliver altid udført."); System.out.println("Slut på metode1()");

13 ResultSetMetaData rsmd = rs.getmetadata(); int antalkolonner Metadata= rsmd.getcolumncount(); System.out.println(); System.out.println(" " + titel + " ("+antalkolonner+" kolonner)"); // udskriv kolonnenavnene for (int i=1; i<=antalkolonner; i++) skrivformateret(rsmd.getcolumnname(i)); System.out.println(); // udskriv cellerne i hver række while (rs.next()) for (int i=1; i<=antalkolonner; i++) skrivformateret(""+rs.getstring(i)); System.out.println(); System.out.println(" "); public static void main(string[] arg) throws Exception Class.forName("oracle.jdbc.driver.OracleDriver"); Connection forb = DriverManager.getConnection( "jdbc:oracle:thin:@ora.javabog.dk:1521:student","jacob","jacob"); DatabaseMetaData dmd = forb.getmetadata(); System.out.println("DatabaseProductName = "+dmd.getdatabaseproductname()); System.out.println("DriverName = "+dmd.getdrivername()); System.out.println("MaxRowSize = "+dmd.getmaxrowsize()); ResultSet rs = dmd.gettables(null, "JANO", "%", null); udskriv("tabeller i databasen", rs); Statement stmt = forb.createstatement(); rs = stmt.executequery("select * from KUNDER"); udskriv("kunder", rs); public static void skrivformateret(string str) System.out.print(str); String KOL = " "; if (str.length()<kol.length()) System.out.print(KOL.substring(str.length()));

14 ResultSetMetaData rsmd = rs.getmetadata(); int antalkolonner Metadata = rsmd.getcolumncount(); System.out.println(); System.out.println(" " + titel + " ("+antalkolonner+" kolonner)"); // udskriv kolonnenavnene for (int i=1; i<=antalkolonner; i++) skrivformateret(rsmd.getcolumnname(i)); System.out.println(); // udskriv cellerne i hver række while (rs.next()) for (int i=1; i<=antalkolonner; i++) skrivformateret(""+rs.getstring(i)); System.out.println(); System.out.println(" "); DatabaseProductName = Oracle public static void main(string[] arg) throws Exception DriverName = Oracle JDBC driver Class.forName("oracle.jdbc.driver.OracleDriver"); MaxRowSize = 2000 Connection forb = DriverManager.getConnection( "jdbc:oracle:thin:@ora.javabog.dk:1521:student","jacob","jacob"); tabeller i databasen (5 kolonner) TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE TABLE_REMARKS DatabaseMetaData null dmd = forb.getmetadata(); JANO KUNDER TABLE null System.out.println("DatabaseProductName = "+dmd.getdatabaseproductname()); null JANO PERSONER TABLE null System.out.println("DriverName = "+dmd.getdrivername()); System.out.println("MaxRowSize = "+dmd.getmaxrowsize()); ResultSet rs = dmd.gettables(null, kunder (2 kolonner) "JANO", "%", null); udskriv("tabeller NAVN i databasen", KREDIT rs); Jacob 1799 Statement Brian stmt = forb.createstatement(); 0 rs = stmt.executequery("select * from KUNDER"); udskriv("kunder", Hans rs); 500 public static void skrivformateret(string str) System.out.print(str); String KOL = " "; if (str.length()<kol.length()) System.out.print(KOL.substring(str.length()));

15 Opdatere og navigere i ResultSet De fleste ResultSet har metoder til at bevæge sig aktivt rundt i svaret og endda opdatere databasen gennem svaret. Det gøres med f.eks.: Statement stmt = con.createstatement(resultset.type_scroll_insensitive, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executequery("select NAVN, KREDIT from KUNDER"); Derefter kan man navigere rundt i ResultSet-objektet med f.eks.: rs.absolute(3); // går til 3. række i svaret (regnet fra 1 af) rs.previous(); // går en række tilbage (modsatte af next()) rs.first(); // går til starten af svaret (svarende til rs.absolute(1)) rs.relative(3); // går 3 rækker frem, dvs. til 4. række int r = rs.getrow();// giver hvilken række vi nu er i (her returneres 4) Man kan ændre i data med f.eks.: rs.updatestring("navn", "Jakob"); // ændrer kundens navn til Jakob rs.updaterow(); // opdaterer rækken i databasen rs.movetoinsertrow(); // flyt til speciel indsættelses række rs.updatestring("navn", "Søren"); // sæt navn rs.updatedouble("kredit", 1000); // sæt kredit rs.insertrow(); // indsæt rækken i databasen rs.movetocurrentrow(); // gå væk fra speciel indsættelsesrække Derudover findes cancelrowupdates(), der annullerer opdateringer i en række, deleterow(), der sletter den aktuelle række fra både svaret og databasen, refreshrow(), der opfrisker ResultSet-objektet med de nyeste data.

16 JDBC RowSet Oracle: A thin wrapper around ResultSet object to make a JDBC driver look like a JavaBeans component RowSet = et sæt rækker hentet fra databasen =ResultSet+oprindelse+ændringer RowSet-objekter giver mulighed ny arbejdsform Man behøver kun at spørge på data (f.eks. med SELECT) hvorefter man får et RowSet-objekt. Når man skal opdatere nogle rækker, slette eller oprette nye, opererer man blot det eksisterende RowSet-objekt Slut med at rode med INSERT-, DELETE- eller UPDATE-sætninger i SQL. Flere undertyper af RowSet JdbcRowSet =ResultSet+oprindelse+ændringer CachedRowSet =rækkerne er gemt i hukommelsen kan altså eksistere afbrudt fra databasen! Undertyper: FilteredRowSet og JoinRowSet WebRowSet =CachedRowSet repræsenteret som XML

17 JdbcRowSet import java.sql.*; import javax.sql.*; import javax.sql.rowset.*; import com.sun.rowset.*; // Bemærk: rowset.jar fra Sun skal være i CLASSPATH public class BenytJdbcRowSet public static void main(string[] arg) throws Exception Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql:///test"); JdbcRowSetImpl jrs = new JdbcRowSetImpl(con); // Lav forespørglen jrs.setcommand("select * FROM kunder WHERE navn =?"); jrs.setstring(1,"jacob"); jrs.execute(); // Udskriv resultatet while (jrs.next()) String navn = jrs.getstring("navn"); double kredit = jrs.getdouble("kredit"); System.out.println(navn+" "+kredit); Opdateringer? - skal indstille jrs Type og Concurrency - kun én table i SELECT! Data-integritet...?

18 CachedRowSet - off-line import java.sql.*; import javax.sql.*; import javax.sql.rowset.*; import com.sun.rowset.*; // Bemærk: rowset.jar fra Sun skal være i CLASSPATH public class BenytCachedRowSet public static void main(string[] arg) throws Exception Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql:///test"); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery("select * FROM kunder"); CachedRowSetImpl crs = new CachedRowSetImpl(); crs.populate(rs); rs.close(); // Opdatér første række i CachedRowSet objektet crs.first(); crs.updatedouble("kredit", 2000); crs.updaterow(); // Indsæt række crs.movetoinsertrow(); crs.updatestring("navn", "Poul Nyrup"); crs.updatedouble("kredit", ); crs.insertrow(); crs.movetocurrentrow(); // Opdatér data i databasen crs.seturl("jdbc:mysql:///test"); crs.setusername("root"); crs.setpassword(""); crs.acceptchanges();

19 WebRowSet off-line; XML-output import com.sun.rowset.*; // Bemærk: rowset.jar fra Sun skal være i CLASSPATH <?xml version="1.0"?> public class BenytWebRowSet <webrowset xmlns=" <metadata> public static void main(string[] <column count>2</column count> arg) throws Exception <column definition> Class.forName("com.mysql.jdbc.Driver"); <column index>1</column index> Connection con = DriverManager.getConnection("jdbc:mysql:///test"); <column display size>32</column display size> Statement stmt = con.createstatement(); <column name>navn</column name> ResultSet rs = stmt.executequery("select <table name>kunder</table name> * FROM kunder"); <column type name>varchar</column type name> WebRowSetImpl wrs </column definition> = new WebRowSetImpl(); wrs.populate(rs); <column definition> rs.close(); <column index>2</column index> <column name>kredit</column name> // Generér XML <schema name></schema name> wrs.writexml(system.out); <table name>kunder</table name> <column type name>float</column type name> // Opdatér første </column definition> række i WebRowSet objektet wrs.first(); </metadata> wrs.updatedouble("kredit", <data> 3000); wrs.updaterow(); <currentrow> <columnvalue>jacob</columnvalue> // Indsæt række <columnvalue> </columnValue> wrs.movetoinsertrow(); </currentrow> wrs.updatestring("navn", <currentrow> "Fogh"); wrs.updatedouble("kredit", <columnvalue>brian</columnvalue> 72); wrs.insertrow(); <columnvalue>0.0</columnvalue> wrs.movetocurrentrow(); </currentrow> <currentrow> // Generér XML der nu <columnvalue>poul også omfatter ændringerne Nyrup</columnValue> wrs.writexml(system.out); <columnvalue> </columnvalue> </currentrow> // Opdatér data </data> i databasen wrs.seturl("jdbc:mysql:///test"); </webrowset> wrs.setusername("root"); wrs.setpassword(""); wrs.acceptchanges();

20 Login og brugeroprettelse Eksempel på javabønne Bemærk: Serveren kan klare brugervalidering for dig

21 JPA / Java Persistence API Bibliotek holder styr på binding mellem database og klasser Annotations Typisk brug EntityManagerFactory emf public nullable=false) private Integer length=30) private String length=50) private String password; ManagerFactory("ffproduction"); EntityManager emq = emf.createentitymanager(); Query allusersq = emq.createnativequery("select * from user",user.class); List<User> allusers = allusersq.getresultlist();

22 JPA / Java Persistence API Bibliotek holder styr på al opdatering Transaktioner EntityManager emenqueuejobs = emf.createentitymanager(); emenqueuejobs.gettransaction().begin(); job.setstate(ff.state_cancelled); emenqueuejobs.merge(job); emenqueuejobs.gettransaction().commit(); Opsætning (persistence.xml) <?xml version="1.0" encoding="utf-8"?> <persistence version="1.0" xmlns=" xmlns:xsi=" xsi:schemalocation=" <persistence-unit name="ffproduction" transaction-type="resource_local"> <provider>org.eclipse.persistence.jpa.persistenceprovider</provider> <class>ff.db.job</class> <class>ff.db.user</class> <properties> <property name="eclipselink.jdbc.driver" value="com.mysql.jdbc.driver"/> <property name="eclipselink.jdbc.url" value="jdbc:mysql://localhost/ff"/> <property name="eclipselink.jdbc.user" value="ff"/>

23 Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger du dele af værket i et nyt værk, skal de dele, der stammer fra dette værk, igen frigives under ÅDL Den fulde licens kan ses på

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 11 Persistens Fremlæggelse af programmering/status for projekter medbring klassediagram og skærmbillede Projektvejledning JNI og kald til maskinkode/c/c++ fra Java

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 3 Skabende designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Eksempel: Forskellige slags

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge

Læs mere

Eksempel på en database: studenter, kurser, eksamener

Eksempel på en database: studenter, kurser, eksamener Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser

Læs mere

Geografisk lokalisering i JSP

Geografisk lokalisering i JSP Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler

Læs mere

med Java og Linux Jacob Nordfalk Linuxforum 2004 Lørdag 6. marts 17.00-17.45 Center for Videreuddannelse Ingeniørhøjskolen i København

med Java og Linux Jacob Nordfalk Linuxforum 2004 Lørdag 6. marts 17.00-17.45 Center for Videreuddannelse Ingeniørhøjskolen i København Webprogrammering med Java og Linux Jacob Nordfalk Center for Videreuddannelse Ingeniørhøjskolen i København Linuxforum 2004 Lørdag 6. marts 17.00-17.45 Program Om Jacob Nordfalk Reklame Intro til Java

Læs mere

Java-opgraderingskursus

Java-opgraderingskursus Java-opgraderingskursus Danmarks Meteorologiske Institut Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Et Javaprogram // Et simpelt program, der skriver "Hej

Læs mere

En kort introduktion til JDBC

En kort introduktion til JDBC En kort introduktion til JDBC af Henrik Bulskov Datalogi Roskilde Universitetscenter 22. marts 2001 JDBC er et generelt klassebibliotek til kommunikation med databaser. Det er ikke målrettet en bestemt

Læs mere

Rigtig SQL Programmering

Rigtig SQL Programmering Rigtig SQL Programmering 1 SQL i Rigtige Programmer Indtil nu har vi brugt SQL direkte i kommandolinje promt/gui program, hvor vi kan lave forespørgsler til databasen I virkeligheden: Programmer kontakter

Læs mere

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker

Læs mere

9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..

9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter.. 9.8 Kildekode Pakke Klasse Sidenummer db Aktivitetstype 91 Behandler 91 ConnectDB 92 DagensKommentar 93 Helligdag 94 IkkePrimaerTid 94 Patient 96 Patientaftale 96 PatientAktivitet 97 Patientgruppe 98 PatientgruppeItem

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

Forskellige databaser

Forskellige databaser Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige databaser Denne artikel beskriver kort forskellige database typer, produkter og API'er. Målet er at give et overblik over hvad der findes

Læs mere

Oracle8i R8.1.5 JAVA. Oracle8i R Oracle8i Enterprise Edition Oracle8i R Oracle8i R Oracle8i R8.1.

Oracle8i R8.1.5 JAVA. Oracle8i R Oracle8i Enterprise Edition Oracle8i R Oracle8i R Oracle8i R8.1. 2000 6 Oracle8i R8.1.7 Oracle8i R8.1.5 Oracle8i R8.1.6 Oracle8i Enterprise Edition Oracle8i R8.1.6 http://otn.oracle.co.jp/ Oracle8i R8.1.7 Oracle8i Oracle8i R8.1.7 Java XML JAVA Oracle8i R8.1.7 Java Oracle

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere

Web- og serverprogrammering

Web- og serverprogrammering Web- og serverprogrammering Introduktion til web- og serverprogrammering - dag 1 Overblik over WSP, eller: de 3+x sprog i webprogrammering (HTML, CSS, JavaScript, plus x serverside-sprog) Installation

Læs mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----x----odbc driver manager----foobar ODBC driver----foobar database Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Java web applikationer med Tomcat

Java web applikationer med Tomcat Denne guide er oprindeligt udgivet på Eksperten.dk Java web applikationer med Tomcat Denne artikel beskriver hvordan man kan konfigurere container managed security og en database connection pool i Tomcat.

Læs mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel

Læs mere

Bilagsrapport til specialet Flash-light

Bilagsrapport til specialet Flash-light Bilagsrapport til specialet Flash-light Af Filip Nicolaisen og Kasper Storm Afleveret Maj 2006 Vejledere: Mads Rosendahl (Datalogi) Bjørn Laursen (Kommunikation) Indholdsfortegnelse - Bilag Bilag 1. 1

Læs mere

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) 1: KLASSE METODE KONSTRUKTØR EKS. PÅ TYPE (VARIABLE) PUBLIC/PRIVATE OBJECT UD FRA KLASSE KALD METODE TILFØR PARAMETER TIL METODE RETURNERE VARIBEL.

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

BRP 6.9.2006 Kursusintroduktion og Java-oversigt

BRP 6.9.2006 Kursusintroduktion og Java-oversigt BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:

Læs mere

Views etc. Databaser

Views etc. Databaser Views etc. Databaser Views Med Views kan vi gemme nogle af de lange select sætninger. I vores eksempel fra tidligere er det f.eks. forbundet med en del besvær at finde telefon nr og bilmærker for en sælger

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Webserverprogrammering

Webserverprogrammering Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter

Læs mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation). Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer

Læs mere

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004 Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret

Læs mere

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004 Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),

Læs mere

Import af rekursivt (parent-child) hierarki i Palo

Import af rekursivt (parent-child) hierarki i Palo Import af rekursivt (parent-child) hierarki i Palo Dette dokument beskriver hvordan et simpelt rekursivt (parent-child) hierarki kan importeres ind i Palo på forskellige måder via SQL og samtidig bibeholde

Læs mere

Anvendelse af metoder - Programmering

Anvendelse af metoder - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur

Læs mere

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Web- og serverprogrammering

Web- og serverprogrammering Web- og serverprogrammering EJB dag 9 EJB (Enterprise Java Beans) Entitetsbønner til databasekommunikation Evt.: EJBQL (EJB Query Language) Evt.: EJB: Transaktioner og sikkerhed Læsning: WJSP kapitel 12

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan vælger jeg dokumentprofilen? Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel

Læs mere

Database optimering - Indeks

Database optimering - Indeks Database optimering - Indeks Alle kender til dette irritations moment, hvor programmet man sidder og arbejder med, bare ikke er hurtigt nok. Selvom det kun drejer sig om få sekunder man sidder og venter,

Læs mere

En Kort Introduktion til Oracle

En Kort Introduktion til Oracle En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 bulskov@ruc.dk 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering

Læs mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Introduktion til SQL queries

Introduktion til SQL queries Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i

Læs mere

ODBC made easy på dansk (når bare man ved hvordan) Jesper Michelsen, Data warehouse & Analyse

ODBC made easy på dansk (når bare man ved hvordan) Jesper Michelsen, Data warehouse & Analyse ODBC made easy på dansk (når bare man ved hvordan) Jesper Michelsen, Data warehouse & Analyse Agenda Præsentation Hvad er ODBC? ODBC Datakildeadministrator System-DSN Distribution Fil-DSN Scriptede connections

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

Præsentation af BSK regionens identity and access management platform

Præsentation af BSK regionens identity and access management platform Regionshuset It digital forvaltning BSK programmet Olof Palmens alle 17 Kontakt@regionmidtjylland.dk www.regionmidtjylland.dk Præsentation af BSK regionens identity and access management platform BrugerStamdataKataloget

Læs mere

SQL for MySQL-begyndere

SQL for MySQL-begyndere Denne guide er oprindeligt udgivet på Eksperten.dk SQL for MySQL-begyndere I denne artikel vil jeg prøve at beskrive MySQL på begynderniveau. SQL står for Structured Query Language, og er et sprog til

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Database programmerings tips

Database programmerings tips Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler

Læs mere

Har du ikke fået oprettet et afdelings-id og PIN-kode til udskrivning på husets printere bedes du tage kontakt til receptionen først:

Har du ikke fået oprettet et afdelings-id og PIN-kode til udskrivning på husets printere bedes du tage kontakt til receptionen først: SOHO/NOHO Printer Installation til Windows (PC) - Version 2.0 Vigtig før du går i gang: Har du ikke fået oprettet et afdelings-id og PIN-kode til udskrivning på husets printere bedes du tage kontakt til

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4 DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

Bookie. IT-Universitetet i København. Grundlæggende Programmering. Eksamensprojekt. Forfattere: Sigrid Gyldenkærne Dalsgard Kasper Kronborg Isager

Bookie. IT-Universitetet i København. Grundlæggende Programmering. Eksamensprojekt. Forfattere: Sigrid Gyldenkærne Dalsgard Kasper Kronborg Isager IT-Universitetet i København Grundlæggende Programmering Eksamensprojekt Bookie Forfattere: Sigrid Gyldenkærne Dalsgard Kasper Kronborg Isager Vejleder: Jesper Wendel Madsen 17. december 2014 Resumé Indhold

Læs mere

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Databasesystemer. IT Universitetet i København 7. juni 2005

Databasesystemer. IT Universitetet i København 7. juni 2005 Databasesystemer IT Universitetet i København 7. juni 2005 Eksamenssættet består af 5 opgaver med 13 spørgsmål, fordelt på 6 sider (inklusiv denne side). Vægten af hver opgave er angivet. Du har 4 timer

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6 DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...

Læs mere

A11: Last Year s Exam

A11: Last Year s Exam A11: Last Year s Exam Agenda Design of Site map and Web- structure (3) Design of data model (1) Design of database transactions (2) Construction of HTML and PHP scripts (3) Exercise 3: Design of Site map

Læs mere

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections; PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;

Læs mere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere Integrationsmanual Anvendelse af webservice til kursusoversigt i Campus Brugervejledning til udviklere Moderniseringsstyrelsen Webservice manual til udviklere 2016 1 1. Indholdsfortegnelse Nyt kapitel

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status

Læs mere

SigmaT.

SigmaT. Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt

Læs mere

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2. 2 Klassediagran 5

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2. 2 Klassediagran 5 INDHOLD 1 Domæne 2 1.1 Design valg.................................... 2 1.1.1 User.................................... 2 2 Klassediagran 5 3 Serbio 7 3.1 Kommunikation..................................

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 13 valgfrie emner Evt: Introduktion til J2EE og EJB Hvordan definere egne generics Evt.: Værktøjer til forbedring af kodekvalitet kodemetrikker og audit Projektvejledning

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

Løsning af skyline-problemet

Løsning af skyline-problemet Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle

Læs mere

Design Diaries.

Design Diaries. Design Diaries http://blog.lykkeeilert.dk/ Patricia Gambula Larsen Patrick Lykke Eilert Ninette Andersen cph-pl130@cphbusiness.dk cph-pe58@cphbusiness.dk cph-na96@cphbusiness.dk INDHOLD Use case model

Læs mere

Undtagelseshåndtering i C#

Undtagelseshåndtering i C# Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide

Læs mere

Fra idé til virkelig med Azure Mobile Services

Fra idé til virkelig med Azure Mobile Services Fra idé til virkelig med Azure Mobile Services Niels Ladegaard Beck Holion nlb@holion.dk @nielslbeck Windows Developers in Denmark Azure App Service Mobile App Introduktion til Azure Mobile Services Platform

Læs mere

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer Denne guide er oprindeligt udgivet på Eksperten.dk TreeView i Access II Jeg vil i denne anden udgave af treeview føljetonen begynde på et mere brugbart eksempel med et TreeView. Vi laver en ny database

Læs mere

Netkatalog upload. Forord: Formål:

Netkatalog upload. Forord: Formål: Netkatalog upload Forord: De data, I indsender som e-katalog, genbruges af SKI s kunder i de ordre, der sendes tilbage til Jer. Det er derfor vigtigt, både for kundes efterfølgende fakturakontrol; men

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Excel som database i ASP via ADO

Excel som database i ASP via ADO Denne guide er oprindeligt udgivet på Eksperten.dk Excel som database i ASP via ADO Viser hvordan excel kan bruges som database i ASP. Artiklen viser hvordan man henter, indsætter, opdater og sletter fra

Læs mere

Indholdsfortegnelse resultat- & kritikprogrammet.

Indholdsfortegnelse resultat- & kritikprogrammet. Indholdsfortegnelse resultat- & kritikprogrammet. Ringsekretærers indtastning af resultater og kritikker... 2 Kom i gang Opstart af programmet... 2 En anden bruger er i gang med ringen... 3 Dommer ændringer

Læs mere

Dansk Ride Forbund Stævnesystem 2 Installationsvejledning

Dansk Ride Forbund Stævnesystem 2 Installationsvejledning Dansk Ride Forbund Stævnesystem 2 Installationsvejledning Redigeret Marts 2009 DANSK RIDE FORBUND Stævnesystem 2 Installationsvejledning Side 1 af 19 Indholdsfortegnelse: 1. Minimumskrav 3 2. Download

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1. Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:

Læs mere

Database Implementering

Database Implementering Database Implementering 1 Database Implementering Er det ikke nemt at implementere et database system? Gemme relationer Parse statements Print resultater Ændre relationer 2 Må vi præsentere Database Management

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

Læs mere

Geografisk lokalisering i ASP.NET

Geografisk lokalisering i ASP.NET Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i ASP.NET Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

Læs mere

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

Læs mere

Databasesystemer. IT Universitetet i København 16. januar 2006

Databasesystemer. IT Universitetet i København 16. januar 2006 Databasesystemer IT Universitetet i København 16. januar 2006 Eksamenssættet består af 5 opgaver med 16 spørgsmål, fordelt på 6 sider (inklusiv denne side), samt et svarark, hvor visse spørgsmål skal besvares.

Læs mere

CV for Christian Plougmann Hag

CV for Christian Plougmann Hag CV for Christian Plougmann Hag Navn Christian Plougmann Hag Født 1970 Civilstand Gift, 2 børn IT-erfaring siden 1991 Personlig profil Christian er en kapacitet, der med sine mange års erfaring med J2EE/JavaEEsystemudvikling,

Læs mere

Interaktionsudvikling

Interaktionsudvikling Projektopgave 3: Interaktionsudvikling CPH business, klasse: MulA2013 Projektansvarlige undervisere Thomas Hartmann MereteGeldermann lützen: Projekt produkt url: www.amalieardahl.dk/projekt3/index.html

Læs mere

Optimering af dit trådløse net

Optimering af dit trådløse net Optimering af dit trådløse net Her er en lille guide til nogle forslag du selv kan gøre for at optimere dit trådløse net. Du skal dog være opmærksom på følgende: - Den hastighed du køber er garanteret

Læs mere

1 Start installation. 2 Vælg Kør. Installation af Næsgaard Mark.NET og konvertering af data

1 Start installation. 2 Vælg Kør. Installation af Næsgaard Mark.NET og konvertering af data Installation af Næsgaard Mark.NET og konvertering af data Generelt Opdatér det gamle program til version 13.0 Tøm PocketMark Kode Denne vejledning beskriver, hvordan du installerer det nye Næsgaard Mark.NET

Læs mere

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter

Læs mere