CliMate: Laboration 3 dataselektion

Relevanta dokument
CliMate följer Tre-lager-arkitektur. Domänobjekt - domänlogiklagret. Viktiga domänklasser i CliMate. De tre lagren. Paketen i CliMate:

Övningar i SQL. SQLAccess.doc Ove Lundgren

Sample exam questions. Database exam TIG058

Structured Query Language (SQL)

1.Lär känna MS SQL Observera. Tips. Förberedelse

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

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

Laboration 24 Databasen MySQL och java

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

Lösningsförslag, tentamen i Databaser

Klientprogrammering mot databaser

Karlstads Universitet, Datavetenskap 1

VAD GÖR DU / VEM ÄR DU?

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

Starta MySQL Query Browser

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

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

INTRODUKTION TILL JDBC

WCMS-15, Webbutvecklare CMS

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

VAD GÖR DU / VEM ÄR DU?

Grunderna i SQL del 1

Objektorienterad Programmering (TDDC77)

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

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

Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

Projekt Foreläsning VI

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

TNMK30 Elektronisk publicering HT 2014 Laboration 5: PHP och MySQL

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

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

JAVAUTVECKLING LEKTION 7

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Tentamen FYTA11 Javaprogrammering

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

ADO.NET Murach Kapitel 17-20

Introduktion till MySQL

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Webbprogrammering, grundkurs 725G54

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Lösningsförslag till tentamen

Lektion 5 HTML, CSS, PHP och MySQL

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Kapitel 4 Arkivmenyn Innehåll

Databasutveckling Introduktion till SQL och TSQL

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

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

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

Databaser och Datamodellering Foreläsning IV

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

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

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

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

Ingenjörsfirman Stéen Java Sida 1 av 1

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

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

Databaser. Vad du ska lära dig: Ordlista

Lösningsförslag, tentamen FYTA11 Javaprogrammering

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Webbprogrammering - 725G54 PHP. Foreläsning II

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

Laboration 5 - Biblioteksapplikation

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

Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel

Introduktion till frågespråket SQL (v0.91)

Föreläsning 9-10 Innehåll

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

DI Studio nyheter

Databaser och. SQL, utsökningar mot flera tabeller TENTA. # radnr (#) studnr (#) kursnr * tentadatum * betyg

Databaser. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

Det är fullt tillåtet att göra laborationen innan laborationstillfället.

Fördjupad Java. Undantagshantering. Fel

1. SQL 2. Utsökningar mot flera tabeller. 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias

Laboration 2, MS SQL. Observera. Tips. Förberedelse. Genomförande

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

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

F4. programmeringsteknik och Matlab

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

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

Structured query language (SQL)

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Sid 1 (9) Tillämpad fysik och elektronik Karin Fahlquist. Laboration: Databasdesign & SQL

Transkript:

CliMate: Laboration 3 dataselektion Human Centered Systems Inst. för datavetenskap Linköpings universitet

Översikt UI för sökning sökfält och felhantering Select i Java och Join Frågeobjekt Svarshantering Skriva ut på fil

Laboration 3: uppgift 1 Skapa inmatningsfält för sökning i databas Inmatade värden ska kontrolleras Förslagsvis rödfärgade fält

UI representation av frågor dropdown gömmer snabbknappar radiobutton vid få val undvik koder som fritext datum och tid organisera logiskt

CliMate: grafiken metadata måste editeras för att få text titlarna i exempelkoden. Rekomenderad layout manager är GridLayout elementen flyter ut om plats finns Generiska lyssnare på min och max fält finns JProgressBar ska användas på samma sätt som i labb 2 update lyssnare ska lyssna på ObservationReport håller först sökvärden; sen ResultSet och skriver på fil

Swings Layout hantering JPanel p = new JPanel(); p.setlayout(new GridLayout(0,2)); p.add(button1); p.add(label2); p.add(button3);...etc

CliMate: enkel felhantering sökdata format testas för varje fält java.text.simpledateformat#parse testar datum (se javadoc) Pop up visas för första hittat fel förbättrad (frivillig) variant: hitta alla fel direkt Alt: skriv ut felen vid fälten istället för pop up

Sekvensdiagram för Sök : från presentation till databas searchb: SearchDb SearchDb Observation Database Select JButton Action Worker Report Service Statement action Performed new start select select execute Query setnumberof Processed... selectresult... selectresult... Swing tråden SwingWorker tråden

ObservationReport Observable liksom FileCollection Lyssna på progress vid sparande till fil Har fält som motsvarar sökfälten i UI metoderna setupperbound, setlowerbound report objektet vet inte vilka sökkriterier som finns inför konstant i klassen för varje fält Sök i databas ingen egen metod görs av write metoden Utskrift på fil jmf. FileCollection har hand om inläsning

Laboration 3: uppgift 2 Sök i databas baserat på inmatade sökvärden Två tabeller används för att hämta svar

SQL SELECT SELECT [ALL DISTINCT] columnname1 [,columnname2] FROM tablename1 [,tablename2] [WHERE condition] [ and or condition...] [GROUP BY column list] [HAVING "conditions] [ORDER BY "column list" [ASC DESC] ] Enklaste fallet: SELECT * FROM tablename WHERE condition; Villkor: = likhet < mindre än > större än <= mindre än eller lika >= större än eller lika <> inte lika LIKE substrängs likhet med % REGEXP reguljära uttryck (MySQL)

Enkelt exempel på SQL utryck SELECT city, region FROM towns WHERE population > 15000 tabell towns city region population Linköping Östergötland 120 000 Handeln Stockholm 25 000 Grums Värmland 10 000 resultatmängd city region Linköping Östergötland Handeln Stockholm

SQL select med JDBC String query = "SELECT city, region FROM towns WHERE population > 15000 ; ResultSet rs = stmt.executequery(query); while (rs.next()) { String city = rs.getstring("city"); String region = rs.getstring("region"); System.out.println(city + " " + region); } stmt.close(); Linköping Östergötland Handeln tockholm

Exempel på SQL utryck: inner join SELECT suppliers.id, suppliers.name, orders.date FROM suppliers, orders WHERE suppliers.id = orders.su_id; tabell suppliers tabell orders resultatmängd id name id su_id date id name date 10000 Ericsson 10001 Nokia 10002 Telia 10003 Vodafone 500125 10000 2003/05/12 500126 10002 2003/05/13 10000 Ericsson 2003/05/12 10002 Telia 2003/05/13

SQL select i JDBC String query = "SELECT suppliers.id, suppliers.name, orders.date + FROM suppliers, orders + WHERE suppliers.id = orders.su_id"; ResultSet rs = stmt.executequery(query); while (rs.next()) { int id = rs.getint("id"); String name = rs.getstring("name") Date date = rs.getdate( date ); System.out.println(id + : + name + : + date); } stmt.close(); 10000:Ericsson:2003/05/12 10002:Telia:2003/05/13

Query Object/Method (Fowler) Jmf. Update Object/Method (labb 2) Kapsla in SQL kod undvik konkret metadata/program i löpande källkod används i transaktionskript metoderna DataMapper använder dessa metoder för att bygga upp sitt SQLstatement och sen Men Implementera bara vad du behöver liten overhead försök inte implementera hela SQL/Select Hitta en bra abstraktionsnivå...svårt men värdefullt

SelectStatement addfield: metod som tar ett Field objekt. Innehåller både fältnamn och tabellen för fältet tilldelar query = "SELECT " + col + " FROM " + table + " WHERE " addupperlimit/addlowerlimit: lägger dit ny ekvation i where delen och AND om ekvationer redan finns execute: skickar skapad fråga till databasen

Laboration 3: uppgift 3 Uppgift 3: Spara databassvaret på fil filens namn ska efterfrågats spara ner i block använd progressbar jobba med SelectionResult

Skiss på förlopp Klick på spara Visa upp JFileChooser Spara på fil Uppdatera progressbar

Spara på fil: paketet java.io Java klientprogram Java Ström Datakälla Enkelriktad sekvensiell trafik write Tecken strömmar XxxWriter Byte strömmar XxxxOutputStream Smidig hantering av objekt och dataformat PrintXxx t ex stöd för println som avslutar med \n

Skriva till teckenströmmar java.io.printwriter Kan hantera både byte och char strömmar Stöd för utskrifter av olika datatyper t ex print och println close() stänger strömmen Titta i javadoc!

Exempel: skriv ut till fil import java.io.*;... String[] filedata = {"ett", "litet", "test"}; String filename = outfile.txt ; try { PrintWriter out = new PrintWriter(fileName); for (String row : filedata) { out.println(row); } out.close(); } catch (IOException e) { System.err.println("Exception thrown!"); e.printstacktrace(); System.exit( 1); // exit with abnormal value } Skapar/ skriver över filen ett litet test outfile.txt

Summering Användargränssnitt för sökning fält med interaktivt stöd, t ex felingenkänning Arbeta (indirekt) med SQL SELECT QueryObject i climate.database gömmer Sql koden Iterera (indirekt) över ett ResultSet och spara på fil