FÖ 07 - JDBC Åtkomst till databaser från applikationer med Java - exempelkod -

Storlek: px
Starta visningen från sidan:

Download "FÖ 07 - JDBC Åtkomst till databaser från applikationer med Java - exempelkod -"

Transkript

1 F07_JDBC.1 FÖ 07 - JDBC Åtkomst till databaser från applikationer med Java - exempelkod -

2 F07_JDBC.2 Anslutning till en databas kräver en drivrutin för ändamålet. För Java: JDBC = Java Database Connectivity (utvecklat av Sun Systems) Info: Utgör ett API (application programming interface) för Java. Definierar hur en klient (t.ex. ett Javaprogram) får göra för att komma en databas: Ett antal metoder i ett antal Javaklasser i paketet java.sql. För varje DBMS (MySQL, Postgres, SQL Server, ) behövs en speciell drivrutin (driver). För MySQL finns drivrutiner för olika språk kallade connector Nedladdning: Den som numera är avsedd för Java är Connector/J (finns äldre sätt som Oracle avråder från, även om de fortfarande finns, t.ex. Connector/ODBC, sämre funktionalitet m.m.). Alla anrop till MySQL-databasen från Java görs via Connector/J. Handbok: Senaste versionen: mysql-connector-java-gpl msi Visa installation av Connector/J och länkningen till JAR-filen i Project Library.

3 F07_JDBC.3 Anslut till mysql-databasen med JDBC // Paketet java.sql är ett API för åtkomst till databaser med SQL eller andra // datakällor med data organiserade i rader och kolumner. import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.sql.resultsetmetadata; import java.sql.callablestatement; import java.util.date; import java.text.simpledateformat; import java.util.calendar; //Demo: Ansluter till en DB, hämtar och manipulerar data, visar resultat atet.

4 public class DB_demo { F07_JDBC.4 public static void main(string[] args) { try { //1. LADDA DBMS-DRIVRUTINEN (här JDBC/J). //Rent teknisk registreras nu JDBC/J Connector av objektet Drivermanager, //vilket strax används för att erhålla en förbindelse med databasen. //För att detta ska fungera måste drivrutinen ha laddats ner och //installerats, och sökvägen till JAR-filen ha gjorts känd för Netbeans. Class.forName("com.mysql.jdbc.Driver");

5 F07_JDBC.5 //2. Skapa ANSLUTNINGSSESSION med interfacet Connection. //Klassen DriverManager är grundtjänsten för att hantera drivrutiner //för DB och innehåller metoder för att skapa anslutning m.m. //Parametrar (alla som strängar): // URL till datakällan (servern är "//localhost" och databasen // "/work_schedule"). // Obs frågetecknet sist. (MySQL Server måste ha konfigurerats till att // acceptera externa TCP/IP-anslutningar, vilket brukar vara default vid // installationen.) // Kontonamn, User name etc. // Lösenord. Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/work_schedule?" + "user=dba&password=dba999"); //Anslutning till din databas från kursen DoD: //Connection conn = DriverManager.getConnection( // "jdbc:mysql://mysql.iei.liu.se/group99_data?" // + "user=group99&password=lösenordet"); Visa: DB_demo_1_KollaAnslutning.java

6 //3. Skapa ett STATEMENT (ett objekt som exekverar en SQL-sats och // returnerar resultatet). // Har metoder för manipulation av data, hämtning av metadata mm. // Om ingen parameter anges, dvs Statement stmt=con.createstatement(), // är default: // Typ av ResultSet: TYPE_FORWARD_ONLY. // Concurrency level: CONCUR_READ_ONLY. // Det returnerade ResultSet går ej att uppdatera och kan endast // genomlöpas en gång från första till sista post. // Sammanfattning av möjliga parametrar: // Statement stmt = conn.createstatement(); F07_JDBC.6 //Nedanstående anrop gör, att ResultSet kan genomlöpas flera //gånger i olika riktningar och att det inte påverkas av eventuella //ändringar i sin datakälla samt att det är uppdateringsbart. // Statement stmt = conn.createstatement( // ResultSet.TYPE_SCROLL_INSENSITIVE, // ResultSet.CONCUR_UPDATABLE );

7 F07_JDBC.7 //4. Skicka SQL-fråga till databasen. // Metoden executequery returnerar ett ResultSet-objekt // som innehåller hela resultatet av frågan (ett antal rader). // Obs, mellanslagen i slutet av delsträngarna. ResultSet rs = stmt.executequery( "SELECT staff_id, tu_begin, tu_end, job_id " + "FROM work_schedule.staff_periods sp, work_schedule.timeunits t " + "WHERE sp.tu_id = t.tu_id " + "ORDER BY staff_id, tu_begin");

8 F07_JDBC.8 //5. Gör något med resultatet. // Skriv ut resultatet med en egentillverkad assistentmetod (se nedan). printtable(rs);

9 F07_JDBC //ASSISTENTMETOD för att skriva ut resultatmängden som strängar. //(Måste vara STATIC pga anropas från MAIN som är static.) private static void printtable (ResultSet rs) throws SQLException { int colwidth = 24; //Kolumnbredd //Hämta kolumnnamnen (ResultSetMetaData har metoder för att ta fram diverse //metadata rörande resultatmängden). ResultSetMetaData rsmd = rs.getmetadata(); String s = new String(); //Skriv ut kolumnnamnen (padright fyller med mellanslag till höger) for (int i = 1; i <= rsmd.getcolumncount(); i++) { s = s + padright(rsmd.getcolumnname(i), colwidth); System.out.println(s); //Skriv ut raderna while (rs.next()) //Radvis bearbetning { s =""; //Kolumn för kolumn på raden. getstring(i) = värdet i kolumncellen for (int i = 1; i <= rsmd.getcolumncount(); i++) { s = s + padright(rs.getstring(i), colwidth); System.out.println(s);

10 F07_JDBC.10 // ASSISTENTMETOD för att fylla en sträng med mellanslag i höger ände // till en viss längd public static String padright(string thevalue, int length) { return String.format("%1$-" + length + "s", thevalue); // %1$ = parametern, värdet för variabeln the Value kommer att sättas på // dess plats. // - = vänsterjustera. // n = strängens längd sätts till värdet för variabeln length (antal // tecken i strängen). // s = konvertera resultatet till en sträng Visa: DB_demo2

11 F07_JDBC.11 //6. Osv... //Skapa en ny STATEMENT utan parametrar pga de inte behövs för att utföra //executeupdate. Statement stmt2 = conn.createstatement(); //Lägg till en rad. //Kom ihåg att ändra staff_id mellan varje exekvering, annars //primärnyckelfel. stmt2.executeupdate("insert INTO staff VALUES (51, 'Nisse Manpower')" ); /* ETT ANNAT SÄTT ATT GÖRA DENNA INSERT: // Behövs: import java.sql.preparedstatement; PreparedStatement ps; //? är place holder ps = conn.preparestatement ("INSERT INTO staff VALUES(?,?)"); int nr = 52; ps.setint (1, nr ); //Placeholder 1 med en variabel ps.setstring (2, "Nisse Manpower"); //Placeholder 2 med direkt värde int count = ps.executeupdate (); ps.close (); */

12 F07_JDBC.12 //Uppdatera några rader stmt2.executeupdate("update work_schedule.staff_periods SET job_id = 2 " + "WHERE staff_id = 38 AND job_id IS NULL"); //Uppdatera några rader med infogning av variabelvärde från Javakoden int jnr = 3; stmt2.executeupdate("update work_schedule.staff_periods SET job_id = " + jnr + " WHERE staff_id = 5345" ); //Sätt cursorn till positionen innan den första posten så att //resultatmängden kan läsas en gång till. //Konvertera sedan värdena till rätt datatyper med den egentillverkade //assistentmetoden converttblsptypes. rs.beforefirst(); converttblsptypes (rs);

13 F07_JDBC //En ASSISTENTMETOD för att konvertera värdena från staff_periods //till rätt datatyper i Java. private static void converttblsptypes(resultset rs) throws SQLException { //Variablerna i Java som ska användas för resultatmängdens kolumner. short staff_id = 0; Date time_start = null; int jobb_id; System.out.println (">>> Typkonverterade värden:"); //Datum på formen :30:05 för att få bort.0 från 16:30:05.0 // (nanosekunderna i Timestamp). Formatet används i loopen. SimpleDateFormat dateform = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //Hämta värdet från namngiven kolumn och konvertera det till önskad datatyp. //Övriga konverteringsmetoder av intresse: getbigdecimal, getboolean, //getbyte, getdouble, getfloat, getlong, getstring, gettime. while (rs.next()) //Radvis bearbetning { //staff_id i mysql är SMALLINT, i Java är det SHORT (-32, ,767) staff_id = rs.getshort("staff_id"); //DATETIME i mysql har ingen direkt motsvarighet i Java. Konverteras till //ett DATE-objekt för att kunna manipulera delar av datum och tid. //Metoden gettimestamp används för att få med både datum och klockslag, //dock följer nanosekunderna med som decimaler till klockslaget, dvs // :00:00.0 time_start = rs.gettimestamp("tu_begin"); //Decimalerna för sekunderna tas bort, dvs :00:00 String time_start_ok = dateform.format(time_start);

14 F07_JDBC.14 //Sluttiden med sekunddecimalerna borta (kompaktare skrivet än ovan) // time_end = rs.gettimestamp("tu_end"); // String time_end_ok = dateform.format(timeend); String time_end_ok = dateform.format( rs.gettimestamp("tu_end") ); //INT i mysql är Int i Java; heltal från t.o.m jobb_id = rs.getint("job_id"); //Veckodag o månad med text, tidzonsförkortningen anges //(formateringmöjligheter finns) Date mydate = new java.util.date(time_start.gettime()); //Här skrivs variablerna endast ut. // Egentligen ska de här stoppas in i den Java-datastruktur där man // vill ha dem. System.out.println(staff_id + "\t" + time_start_ok + "\t" + time_end_ok + "\t" + jobb_id+ "\t" + mydate); // END while // END method Visa: DB_demo3a

15 F07_JDBC OBS, klassen CALENDAR kräver denna import: import java.util.calendar; //En ASSISTENTMETOD för att konvertera värdena från staff_periods //till rätt datatyper i Java. private static void converttblsptypes(resultset rs) throws SQLException { //Variablerna i Java som ska användas för resultatmängdens kolumner. short staff_id = 0; //Annars felmeddelande om "Not inititalized". Date time_start, time_end; int jobb_id; System.out.println (">>> Typkonverterade värden:"); //Datum på formen :30:05 för att få bort.0 från 16:30:05.0 // (nanosekunderna i Timestamp). Formatet används i loopen för att skriva // ut datumet som en sträng med önskat datumformat (interna formatet är // det amerikanska) SimpleDateFormat dateform = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

16 F07_JDBC.16 //Hämta värdet från namngiven kolumn och konvertera det till önskad datatyp. //Övriga konverteringsmetoder av intresse: getbigdecimal, getboolean, //getbyte, getdouble, getfloat, getlong, getstring, gettime. while (rs.next()) //Radvis bearbetning { //staff_id i mysql är SMALLINT, i Java är det SHORT (-32, ,767). staff_id = rs.getshort("staff_id"); //DATETIME i mysql har ingen direkt motsvarighet i Java. Konverteras till //ett DATE-objekt för att kunna manipulera delar av datum och tid. //Metoden gettimestamp används för att få med både datum och klockslag, // dock följer nanosekunderna med som decimaler till klockslaget. //Ett av de enkla sätten att bli kvitt nanosekunderna är att konvertera //via ett Calendar-objekt, eftersom det inte tar med nanosekunder. //Skapa ett Calendar-objekt och tilldela det Timestamp-värdet från //JDBC:s ResultSet. Nanosekunderna är nu borta. Calendar cal = Calendar.getInstance(); cal.settime(rs.gettimestamp("tu_begin")); //Datum och klockslag från Calendar-objektet tilldelas Date-objektet. //Det innehåller nu datum och klockslag i amerikansk datumformat. time_start= cal.gettime(); //Samma för sluttiden cal.settime(rs.gettimestamp("tu_end")); time_end = cal.gettime(); //INT i mysql är Int i Java; heltal från t.o.m jobb_id = rs.getint("job_id");

17 F07_JDBC.17 //Här skrivs variablerna endast ut. I stället ska de stoppas in i den //Java-datastruktur där man vill ha dem. //För att skriva ut datumen i vårt datumformat används det ovan // definierade formatet dateform. Prova gärna utskrift utan denna // formattering! System.out.println(staff_id + "\t" + time_start + "\t" + time_end + "\t" + jobb_id); Visa: DB_demo3b

18 (Main-metoden igen.) F07_JDBC.18 //Anropa en Stored Procedure som inte returnerar några värden. //(Denna SP återställer de ursprungliga värdena i tabellerna staff_periods //och staff.) CallableStatement cs = conn.preparecall( "{call sp_restorestaffperiods" ); cs.execute(); //Stäng anslutningen stmt.close(); stmt2.close(); cs.close(); conn.close(); catch (Exception e) { System.out.println("ERROR: " + e.getmessage() );

19 Exekveringen av DB_demo3a ger denna utskrift: F07_JDBC.19 staff_id tu_begin tu_end job_id :00: :30: :30: :00: :00: :30: :00: :30:00.0 null :30: :00: :00: :30: :30: :00: :00: :30:00.0 null :30: :00: :00: :30:00.0 null :00: :30: :30: :00: :00: :30: :00: :30:00.0 null >>> Typkonverterade värden: :00: :30:00 4 Thu Mar 08 08:00:00 CET :30: :00:00 4 Thu Mar 08 08:30:00 CET :00: :30:00 4 Thu Mar 08 09:00:00 CET :00: :30:00 0 Thu Mar 08 08:00:00 CET :30: :00:00 4 Thu Mar 08 08:30:00 CET :00: :30:00 2 Fri Mar 09 08:00:00 CET :30: :00:00 4 Fri Mar 09 08:30:00 CET :00: :30:00 0 Sat Mar 10 08:00:00 CET :30: :00:00 4 Sat Mar 10 08:30:00 CET :00: :30:00 0 Thu Mar 08 08:00:00 CET :00: :30:00 1 Fri Mar 09 08:00:00 CET :30: :00:00 1 Fri Mar 09 08:30:00 CET :00: :30:00 1 Fri Mar 09 09:00:00 CET :00: :30:00 0 Sat Mar 10 08:00:00 CET 2012

20 Exekveringen av DB_demo3b ger denna utskrift: F07_JDBC.20 staff_id tu_begin tu_end job_id :00: :30: :30: :00: :00: :30: :00: :30:00.0 null :30: :00: :00: :30: :30: :00: :00: :30:00.0 null :30: :00: :00: :30:00.0 null :00: :30: :30: :00: :00: :30: :00: :30:00.0 null >>> Typkonverterade värden: 38 Thu Mar 08 08:00:00 CET 2012 Thu Mar 08 08:30:00 CET Thu Mar 08 08:30:00 CET 2012 Thu Mar 08 09:00:00 CET Thu Mar 08 09:00:00 CET 2012 Thu Mar 08 09:30:00 CET Thu Mar 08 08:00:00 CET 2012 Thu Mar 08 08:30:00 CET Thu Mar 08 08:30:00 CET 2012 Thu Mar 08 09:00:00 CET Fri Mar 09 08:00:00 CET 2012 Fri Mar 09 08:30:00 CET Fri Mar 09 08:30:00 CET 2012 Fri Mar 09 09:00:00 CET Sat Mar 10 08:00:00 CET 2012 Sat Mar 10 08:30:00 CET Sat Mar 10 08:30:00 CET 2012 Sat Mar 10 09:00:00 CET Thu Mar 08 08:00:00 CET 2012 Thu Mar 08 08:30:00 CET Fri Mar 09 08:00:00 CET 2012 Fri Mar 09 08:30:00 CET Fri Mar 09 08:30:00 CET 2012 Fri Mar 09 09:00:00 CET Fri Mar 09 09:00:00 CET 2012 Fri Mar 09 09:30:00 CET Sat Mar 10 08:00:00 CET 2012 Sat Mar 10 08:30:00 CET (Calendar-objekt utan formatering, men sekunddecimalerna är borta.)

21 F07_JDBC.21 Särskild klass för typkonverteringen Steg 1. Skapa en ny klass Convert_mysql_to_java och flytta metoden converttblsptypes dit. Ändra inget. Första kontrolleras att anropet och bearbetningen fungerar. package db_demo4; import java.sql.resultset; import java.sql.sqlexception; import java.text.simpledateformat; import java.util.date;

22 public class Convert_mysql_to_java { F07_JDBC.22 //Konvertera värdena från MySQL till rätt datatyper i Java. public void converttblsptypes(resultset rs) throws SQLException { System.out.println("Anropet till converttblsptypes har skett."); short staff_id; Date time_start = null; int jobb_id; System.out.println (">>> Typkonverterade värden:"); SimpleDateFormat dateform = new SimpleDateFormat("yyyy-MM MM-dd HH:mm:ss"); while (rs.next()) //Radvis bearbetning { staff_id = rs.getshort("staff_id"); time_start = rs.gettimestamp("tu_begin"); String time_start_ok = dateform.format(time_start); String time_end_ok = dateform.format( rs.gettimestamp("tu_end") ); jobb_id = rs.getint("job_id"); Date mydate = new java.util.date(time_start.gettime()); System.out.println(staff_id + "\t" + time_start_ok + "\t" + time_end_ok + "\t" + jobb_id+ "\t" + mydate);

23 F07_JDBC.23 Steg 2. I main-metoden i klassen db_demo skapas ett objekt av den nya klassen Convert_mysql_to_java, och ett anrop görs till dess metod converttblsptypes. package db_demo4; import... public class DB_demo4 { public static void main(string[] args) { try { Class.forName("com.mysql.jdbc.Driver"); ");... //6. Ett object av den nya klassen Convert_mysql_to_java. Convert_mysql_to_java mysqltojava = new Convert_mysql_to_java(); rs.beforefirst(); //Anropa metoden och skcikat som förut med rs-objektet. mysqltojava.converttblsptypes(rs); stmt.close(); conn.close(); catch (Exception e) { System.out.println("ERROR: " + e.getmessage());... Visa DB_demo4

24 F07_JDBC.24 Steg 3. Ändra metoden converttblsptypes så att den returnerar de typkonverterade raderna till den som anropade. Varje cell på en rad i resultatet från MySQL görs till ett objekt som stoppas in en COLLECTION av typen LIST. Varje sådant LIST-radobjekt stoppas in i en annan LIST som då innehåller hela resultatmängden efter typkonvertering. Oracles tutorial om COLLECTIONS: Specifikt om LIST: package db_demo4; import java.sql.resultset; import java.sql.sqlexception; import java.text.simpledateformat; import java.util.arraylist; import java.util.date; import java.util.list;

25 public class Convert_mysql_to_java1 { F07_JDBC.25 //Konvertera värdena från MySQL till rätt datatyper i Java. //Packa om i ett listobjekt och reutrnera detta. //Med List<Object> går det att blanda olika objekttyper. //(ej tvunget att ange <Object> men slipper varningsmeddelanden). public List<Object> converttblsptypes(resultset rs) throws SQLException { //Variablerna i Java som ska användas för resultatmängdens kolumner. short staff_id; Date time_start = null; int jobb_id; SimpleDateFormat dateform = new SimpleDateFormat("yyyy-MM MM-dd HH:mm:ss"); //Varje cell på raden lagras som ett objekt i denna lista. List<Object> rad = new ArrayList<Object>(); //Varje rad-objekt lagras som ett objekt i denna lista List<Object> tabellensrader = new ArrayList<Object>();

26 while (rs.next()) //Radvis bearbetning { staff_id = rs.getshort("staff_id"); F07_JDBC.26 time_start = rs.gettimestamp("tu_begin"); String time_start_ok = dateform.format(time_start); String time_end_ok = dateform.format( rs.gettimestamp("tu_end") ); jobb_id = rs.getint("job_id"); //Lägg in radens cellvärden som objekt i rad-listan rad.add(staff_id); rad.add(time_start_ok); rad.add(time_end_ok); rad.add(jobb_id); //Lägg in rad ad-objektet i listan som håller raderna. tabellensrader.add(rad); //Returnera listan som innehåller raderna. return tabellensrader;

27 F07_JDBC.27 Steg 4. Ändra DB_demo så att den returnerade listan tas emot och innehållet plockas fram.... //6. //Deklarera listan som tar emot resultatmängden efter anropet. List<Object> tabell = new ArrayList<Object>(); //Deklarera objektet av klassen Convert_mysql_to_java1. Convert_mysql_to_java1 mysqltojava = new Convert_mysql_to_java1(); rs.beforefirst(); //Anropa metoden converttblsptypes i objektet mysqltojava som är //av typen/klassen Convert_mysql_to_java1. Skicka med resultaet som //levererades från MySQL. //Tag emot den returnerade listan och lagra den i objektet tabell. tabell = mysqltojava.converttblsptypes(rs);

28 F07_JDBC.28 //Iterera genom tabell-objektet (som är en lista). //Deklara ett ITERATOR-objekt iter och hämta ett iterator-objekt objekt //speciellt för "tabell". Iterator iter; iter = tabell.iterator(); //Så länge det finns ännu ett objekt i listan... while ( iter.hasnext() ) { //Hämta ut objekt och konvertera samtidigt till typen LIST pga att rad //har deklarerats som LIST. rad = (List)iter.next(); //Skriv ut vart och ett av de fyra objekt på raden. De ligger på //indexen 0, 1, 2, 3. System.out.println(rad.get(0) + " " + rad.get(1) + " " + rad.get(2) + " " + rad.get(3));

29 System.out.println("\nEtt nett annat sätt att skriva iteration en genom listan:"); F07_JDBC.29 //En iterator specikellt för listor, som ärver vissa egenskaper och metoder //från den generella klassen ITERATOR. for (ListIterator<Object> it = tabell.listiterator(); it.hasnext(); ) { rad = (List)it.next(); System.out.println(rad.get(0) + " " + rad.get(1) + " " + rad.get(2) + " " + rad.get(3)); stmt.close(); conn.close(); Visa DB_demo41

Klientprogrammering mot databaser

Klientprogrammering mot databaser Klientprogrammering mot Databaser Java DataBase Connectivity, JDBC Klientprogrammering mot databaser Native API olika för olika DBMS, ofta i C/C++ ODBC, Open Datbase Connectivity samma API för olika databashanterare.

Läs mer

INTRODUKTION TILL JDBC

INTRODUKTION TILL JDBC INTRODUKTION TILL JDBC Vad är JDBC? JDBC står för Java DataBase Connectivity. JDBC ingår i Java och består av en del klasser som har hand om databasfunktionalitet. Med Java följer JDBC-ODBC Bridge driver,

Läs mer

Laboration 24 Databasen MySQL och java

Laboration 24 Databasen MySQL och java Laboration 24 Databasen MySQL och java Avsikten med denna laboration är att du ska hämta information ur en eller flera tabeller och visa resultatet i en JTable-komponent. Du ska ändra innehållet i tabellen

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder: Föreläsning 3 JDBC Innehåll JNDI Java Naming and Directory Interface En slags DNS för Objekt JDBC Grunderna Uppkoppling Exekvera SQL-satser Ta hand om resulterande ResultSets Finesser PreparedStatement

Läs mer

Lösningsförslag, tentamen i Databaser

Lösningsförslag, tentamen i Databaser LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Lösningsförslag, tentamen i Databaser 2004-04-20 1. ER-diagram: Matsedel år vecka serveras 1..5 lagas-med Maträtt Ingrediens dag mängd Allergi

Läs mer

2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets

2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets 2I1070 Lektion 2 Servlets och databaskopplingar KTH-MI Peter Mozelius Internetprogrammering Tidigare på kursen 2I1049 har vi enbart sysslat med fristående program där allt körs på en och samma dator. I

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

Classpath. Class loading + resurser. Class loader. jar-filer

Classpath. Class loading + resurser. Class loader. jar-filer Classpath Sätts antingen via kommandoradsparameter till jvm:en (-cp -classpath) eller via en environment variabel (CLASSPATH). Går även att ställa in i eclipse för ett projekt. Class loading + resurser

Läs mer

Skapa exempeldatabasen

Skapa exempeldatabasen Skapa exempeldatabasen Koden i detta dokument är avsedd att exekveras i SQL Editor i MySQL Workbench. Skapa databasen För att kunna använda svenska alfabetet för lagring av data deklareras teckenensuppsättningen

Läs mer

Att skriva till och läsa från terminalfönstret

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

Läs mer

Sample exam questions. Database exam TIG058

Sample exam questions. Database exam TIG058 Sample exam questions Database exam TIG058 Distribution of topics covered 1. Grundläggande om Databaser och Databashanterare (5p) 2. SQLite-databashanteraren (5p) 3. SQL - SELECT, ORDER BY, WHERE, LIMIT

Läs mer

ADO.NET Murach Kapitel 17-20

ADO.NET Murach Kapitel 17-20 Databaser och C# ADO.NET Murach Kapitel 17-20 2013-01-30 1 Winstrand Development Databas ADO.NET Är en del av.net ramverket och tillhandahåller delar för att kommunicera med olika datakällor. Dessa kan

Läs mer

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. 1 (8) DUGGA: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt namn, personnummer och e-postadress på försättsbladet. Skriv rent dina svar.

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-04-28, kl 09.00-13.00 Hjälpmedel: Endast bifogat kompendium

Läs mer

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Genomgång av tentamen. Databasteknik ITHS 4/3 2016

Genomgång av tentamen. Databasteknik ITHS 4/3 2016 Genomgång av tentamen Databasteknik ITHS 4/3 2016 Tentans upplägg Täcka in de 10 delar av kursen vi bedömt som viktigast Säkerställa att det funnits såväl teoripass som övningspass kring varje del Lätt

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

Läs mer

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1. Objektorienterad programmering E Telefonboken, än en gång Föreläsning 5 Wrapper classes Exempel, histogram. Inldening om undantag. Mer om klassen Påminnelse Vår senaste version bestod av två klasser, bägge

Läs mer

Generisk klass med typparameter Inre klass - ListIterator

Generisk klass med typparameter Inre klass - ListIterator Objektorienterad programmeringsmetodik Generics, clone Generics Återanvändning Ännu ett sätt att lösa ett gammalt problem: skriva så lite kod som möjligt Vi vill ha metoder som fungerar på olika klasser

Läs mer

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private. Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata Innehåll MySQL Intro Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata 1 Lagrad procedur / Stored Procedure Lagrad procedur har många namn, förkortningen

Läs mer

JAVA Mer om klasser och objektorientering

JAVA Mer om klasser och objektorientering JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det

Läs mer

Föreläsning 2. Länkad lista och iterator

Föreläsning 2. Länkad lista och iterator Föreläsning 2 Länkad lista och iterator Föreläsning 2 Länkad-lista Lista implementerad med en enkellänkad lista Iterator Implementering av en Iterator Dubbellänkad lista och cirkulär lista LinkedList JCF

Läs mer

Objektsamlingar i Java

Objektsamlingar i Java 1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och

Läs mer

Föreläsning 2. Länkad lista och iterator

Föreläsning 2. Länkad lista och iterator Föreläsning 2 Länkad lista och iterator Föreläsning 2 Länkad-lista Lista implementerad med en enkellänkad lista Iterator Implementering av en Iterator Dubbellänkad lista och cirkulär lista LinkedList JCF

Läs mer

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i

Läs mer

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om

Läs mer

Instuderingsfrågor, del D

Instuderingsfrågor, del D Uppgift 1. Instuderingsfrågor, del D Objektorienterad programmering, Z1 I vilka av nedanstående problem behöver man använda sig av fält för att få en elegant lösning? I vilka problem är det är det onödigt/olämpligt

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Att använda Java SE JDK 6

Att använda Java SE JDK 6 Att använda Java SE JDK 6 Programmeringsspråket Java är utvecklat av det amerikanska företaget Sun Microsystems. Sun erbjuder gratis en utvecklingsmiljö för java-programmering, Java 2 SE (Standard Edition).

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Föreläsnings 9 - Exceptions, I/O

Föreläsnings 9 - Exceptions, I/O Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public

Läs mer

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Tentamen ID1004 Objektorienterad programmering December 15, 2012 Ordinarie tentamen för ID1004 Objektorienterad programmering, 15 december 2012, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

PROGRAMMERING-Java Omtentamina

PROGRAMMERING-Java Omtentamina PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -

Läs mer

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Tentamen ID1004 Objektorienterad programmering May 29, 2012 Omtentamen för ID1004 Objektorienterad programmering HT11, 29 maj 2012, 09-13 Denna tentamen examinerar 3 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av 12 frågor. Varje fråga

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 6: Metoder och fält (arrays) TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack

Läs mer

Stored procedure i ASP.NET

Stored procedure i ASP.NET Stored procedure i ASP.NET OBS! Om du vill jobba med att skapa en stored procedure i en SQL Serverdatabas ifrån VS2010 måste du ha fullversion, expressversionen tillåter dig ej att skapa triggers, stored

Läs mer

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR Instuderingsuppgifter läsvecka 6 - LÖSNINGAR 1. 2. Om vi använder interfacet List behöver vi inte bry oss om den konkret implementation som används, därför kan implementationen bytas ut genom att endast

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

Läs mer

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

Läs mer

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0.. Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid: Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-04-06, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:

Läs mer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num

Läs mer

Lösningsförslag till tentamen i OOP, HI1027 Fredag 21 oktober 2011

Lösningsförslag till tentamen i OOP, HI1027 Fredag 21 oktober 2011 Lösningsförslag till tentamen i OOP, HI1027 Fredag 21 oktober 2011 Text inom [] avser kommentarer till rättningen, ofta sådant som många missuppfattat eller gjort fel på. Del A. Teoriuppgifter 1. Återanvändning:

Läs mer

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).

Läs mer

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina

Läs mer

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga 203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

E02 The Review Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition Kurs: 1dv403 Webbteknik I Johan Leitet E02 - "The Review" Dagens agenda Identifierare Kommentarer Variabler Datatyper Operatorer Villkorssatser

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public

Läs mer

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många

Läs mer

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen. TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl

Läs mer

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, 2001-04-28, kl 09.00-13.00 1. Grunderna

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2019-03-22 Skrivtid: 14:00 19:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Arrayer. results

Arrayer. results Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1

Läs mer

LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P.

LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P. Uppgift 1 (2 poäng) Utgå från följande klassdefinition : public class TempKlass public String uttext; public static int svar; LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P. 991122

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

DAT043 - föreläsning 8

DAT043 - föreläsning 8 DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns

Läs mer

4.4 Swing ett interaktivt grafiskt gränssnitt

4.4 Swing ett interaktivt grafiskt gränssnitt 4.4 Swing ett interaktivt grafiskt gränssnitt Våra javaprogram har hittills bara haft utdata, inga indata. Det var utdata som skrevs ut från programmet till bildskärmen antingen med metoden showmessagedialog()

Läs mer

Lektion 5 HTML, CSS, PHP och MySQL

Lektion 5 HTML, CSS, PHP och MySQL Lektion 5 HTML, CSS, PHP och MySQL I den här lektionen behandlas i huvudsak PHP för att läsa information från en databas, MySQL. Det förutsätts att tidigare lektioner är gjorda, eller att du har tillräckliga

Läs mer

Föreläsning 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

DB2-åtkomst från WebSphere

DB2-åtkomst från WebSphere DB2-åtkomst från WebSphere Idéer och tankar inför etablerandet av best practices vid användning av DB2 i WebSphere-miljö Lennart Henäng OH bild 1 Agenda JCC - ny design och konfiguration (T2/T4) Autenticering

Läs mer

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid: Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-04-12, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:

Läs mer

Objektorienterad Programmering DAT043. Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Objektorienterad Programmering DAT043. Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) Objektorienterad Programmering DAT043 Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetion: Klasser och objekt Vi definierar nya objekttyper i klasser. Ett objekt

Läs mer

Parallellism, återblick

Parallellism, återblick Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata

Läs mer

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 ) (26 januari 2018 F3 1 ) Dagens föreläsning Arrayer och klasser Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 2 ) Arrayer En array är en datatyp

Läs mer

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om? Algoritmer och datastrukturer Allmänt om kursen Kort javagrund repetition - Klasser, metoder, objekt och referensvariabler, - Hierarkiska klass strukturer - Arrayer och arrayer av objekt - Collection ramverket

Läs mer

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

Läs mer