Sovellusarkkitehtuurit

Koko: px
Aloita esitys sivulta:

Download "Sovellusarkkitehtuurit"

Transkriptio

1 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 1 ( 19) Sovellusarkkitehtuurit Edellä olemme tutustuneet SQL-kieleen ja transaktiokäsittelyn periaatteisiin. Tarkastelemme tässä osiossa tietokantakäsittelyn ohjelmointia (data access technologies) keskeisissä sovellusarkkitehtuureissa. Tutustumme lähinnä standardoituihin teknologioihin ja erityisesti Javan tietokantaliittymään JDBC. Sovellusarkkitehtuurien perusmalli on 2-kerroksinen asiakas/palvelin (Client/Server). Tyypillinen sovellusarkkitehtuuri kattaa nykyisin useamman kerroksen, mutta kunkin kerroksen välillä näissäkin on asiakas/palvelin suhde. Tietokantapalvelin on näissä arkkitehtuureissa perimmäinen ja tietokantaohjelmointia tarvitaan siis tämän kerroksen asiakaskerroksen ohjelmoinnissa. Osa I Client/Server ja tietokantaohjelmoinnin rajapinnat Perinteinen tietokantojen sovelluskäyttö on perustunut asiakas/palvelin (Client/Server) -arkkitehtuurin, missä sovellusohjelma tai esimerkiksi SQLkomentojen testaamiseen tarkoitettu SQL-editori (esimerkiksi Oraclen SQLPlus) on tietokantapalvelun asiakas ja tietokantapalvelin (instanssi) on toteutettu tyypillisesti erillisessä palvelinkoneessa DBMS-järjestelmällä. DBMS-järjestelmän palvelujen ohjelmointirajapinta (Application Programming Interface, API) on toteutettu kussakin järjestelmässä omalla funktiokirjastolla, esimerkiksi Oraclella OCI-kirjastolla. Etäpalvelimen turvallinen käyttö edellyttää lisäksi erillisten verkkopalvelujen asennuksia. Tällainen Oraclen verkkopalvelunohjelmisto on SQL*Net. DBMS:n funktiokirjaston käytön ohjelmointia on helpotettu esikääntäjätekniikalla, mistä käytetään nimitystä upotettu SQL. Sovelluskoodiin Upotettu SQL Embedded SQL (ESQL) oli ensimmäinen standardoitu SQL-pohjainen tietokantaliittymä, joka mahdollisti lähes DBMS-järjestelmästä riippumattoman tietokantaohjelmoinnin. Sovelluksen ohjelmointiin käytettyä ohjelmointikieltä kuten esimerkiksi COBOL, Fortran, PL/I, C tai C++ sanotaan tässä isäntäkieleksi. Kuvassa 1 on pieni Oraclen C-kielinen esimerkki, joka kuvaa SQL-kielen upotusta sovelluskoodiin EXEC SQL lauseina ja SQL-lauseen parametrointia käyttäen kaksoispistenotaatiolla sovelluskoodin muuttujia input ja output parametreina (host variables). Kuvassa 1b esitetään ESQL-ohjelman kehitysvaiheet. SQL-komennot testataan ensin SQL-editoria käyttäen. Testatut SQL-komennot upotetaan sovellusohjelman lähdekoodiin. Näin muodostettu ESQL-ohjelma käännetään ensin isäntäkielelle

2 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 2 ( 19) sovitetulla esikääntäjällä (precompiler) sovelluskoodiksi, missä EXEC SQL lauseet muutetaan dokumentointia varten kommenteiksi, joiden perään generoidaan kulloisenkin SQL-komennon toteuttava DBMS-järjestelmän funktiokirjaston funktioiden kutsusarjat. Järjestelmästä riippuen esikääntäjä voi jo tarkistaa SQL-komennot tietokannasta luetun metatiedon perusteella ja tallettaa SQL-komentojen suorituksen optimoidut suoritussuunnitelmat tietokantaan (Static SQL). Suoritettavaa ohjelmakoodia varten näin generoitu ohjelmakoodi käännetään ohjelmointikielen kääntäjällä ja siihen linkitetään tarvittavat funktiokirjastot. Kuvan 1 EXEC SQL lause hakee tietokannasta yhden rivin ja latoo sen arvot isäntäkielen muuttujiin. Jos käytetty SQL-komento tuottaa monirivisen tulosjoukon, käytetään tämän ohjelmalliseen käsittelyyn kursori-käsittelyä. Tietokantakäsittelyssä voi sattua erilaisia poikkeustilanteita tai virheitä. EXEC SQL lauseen suorituksen jälkeen näitä tutkitaan järjestelmäkohtaisesta SQLCodemuuttujasta (jonka arvoista on standardoitu seuraavat: 0 = ei virheitä, 100 = ei löytynyt yhtään riviä, negatiiviset arvot ovat virheitä ja positiiviset huomautuksia) tai SQLState-muuttujista, jonka arvot on standardoitu.

3 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 3 ( 19)... #define UNAME_LEN int emp_number; /* Define a host structure for the output values of a SELECT statement. */ /* No declare section needed if precompiler option MODE=ORACLE */ struct { VARCHAR last_name[uname_len]; float salary; float commission_pct; emprec; /* Define an indicator structure to correspond to the host output structure. */ struct { short emp_name_ind; short sal_ind; short comm_ind; emprec_ind;... /* Select columns last_name, salary, and commission_pct given the user's input * for employee_id. */ EXEC SQL SELECT last_name, salary, commission_pct INTO :emprec INDICATOR :emprec_ind FROM employees WHERE employee_id = :emp_number;... Kuva 1. Osa C-ohjelmaa, johon on upotettu SQL-komentoja (lähde: Oracle Database Application Developer s Guide Fundamentals)

4 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 4 ( 19) 2) SQL-komentojen upotus lähdekoodiin SQL-komennot 1) SQL-komentojen testaus Lähdeohjelma + ESQL SQL-editori isäntäkielen ESQL-esikääntäjä Lähdeohjelma + funktiokutsut isäntäkielen kääntäjä 4) tietokannan käyttö 3) tietokannan metatiedon käyttö SQL-jäsennys optimointi ja suoritussuunnitelman mahdollinen talletus tietokantaan välikoodi funktiokirjasto Linkittäjä DBMS suoritettava sovelluskoodi tietokanta Kuva 1b. ESQL-ohjelman kehitysvaiheet ESQL-ratkaisut ovat järjestelmäkohtaisen funktiokirjaston ja sille rakennetun esikääntäjätoteutusten vuoksi järjestelmäsidonnaisia. DBMS:n SQL-murretta välttävä ja SQL-standardin yksinkertaisia tietotyyppejä ja lauserakenteita käyttävä lähdekoodi voi kuitenkin jo olla siirrettävää eli käytettävää DBMS-järjestelmää voidaan vaihtaa käyttämällä toisten järjestelmien ESQL-esikääntäjiä.

5 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 5 ( 19) SQL/CLI ja ODBC SQL-standardiin on ESQL:n jälkeen määritelty myös SQL Call Level Interface (SQL/CLI), joka määrittää järjestelmäriippumattoman funktiokirjaston SQLkomentojen suoritukseen. Tämä on toteutettu lähes sellaisenaan IBM:n DB2- järjestelmän uutena funktiokirjastona. SQL/CLI:n varhaisen työversion pohjalta Microsoft toteutti 90-luvun alussa ODBCkirjaston, missä lähinnä C/C++ -tietokantaohjelmointia varten määritelty ODBC API tarjoaa universaalin tietokantaohjelmoinnin rajapinnan. Sovelluksen paikalliseen Windows-rekisteriin määritellään tietokantayhteyttä varten ns. tietolahde (Data Source), johon määritetään yhteyden rakentamiseen tarvittavat parametritiedot ja DBMS-järjestelmän käyttöä varten asennettu ODBC tietokanta-ajuri (ODBC Driver). Tietokanta-ajuri muuntaa ODBC API:n funktiokutsut DBMS:n funktiokirjaston kutsuiksi ja suorittaa myös joitakin ODBC API:n kautta välitettyjen SQL-lauseiden muunnoksia DBMS:n SQL-murteelle. Native function Library: DBMS: Oracle Application ODBC API ODBC Driver Manager Oracle driver DB2 driver SQL Server driver Network - Formats and Protocols SQL DB2... Server (Windows registry) Data Source - Driver - server - protocols and formats ODBC-ajureita on nykyisin toteutettu lähes kaikille DBMSjärjestelmille. ODBC aloitti näin merkittävän avoimen tietokantaohjelmoinnin kehityksen romahduttaen aikaisempien kalleudellaan kehitystä hidastaneiden tietokantayhteyksien väliohjelmistojen tuotemarkkinat. Database: Kuva 2 ODBC OLE DB ja ADO C/C++ -kielille tarkoitetun ODBC API:n käyttö edellyttää laajan funktiokirjaston ja näiden funktioiden laajan parametriston käytön tuntemista. Microsoft kehitteli sen päälle erilaisia Visual Basic kielille sovitettuja wrapper-luokkakirjastoja kuten DAO ja RDO sekä C++ -olio-ohjelmointiin sopivan OLE DB luokkakirjaston, joka voi käyttää ODBC-yhteyksiä, mutta jolla voidaan DBMS-järjestelmäkohtaisten OLE DB Provider sovittimien avulla ODBC API:a tehokkaammin ja monipuolisemmin varsinkin Microsoftin oman SQL Server järjestelmän palveluita.

6 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 6 ( 19) Visual Basic kielille OLE DB:n päälle Microsoft on kehittänyt helppoköyttöisen ActiveX Data Objects (ADO) luokkakirjaston, joka on kuvattu kuvassa 3. ADOohjelmoinnissa keskeisiä ovat seuraavat: - Connection olioluokka - Command olioluokka - Recordset olioluokka - Fields-kokoelma ja Field - Errors-kokoelma ja Error Yhteys tietokantaan luodaan Connection-olion Open-metodilla ja suljetaan lopuksi Close-metodilla. SQL-komentoja suoritetaan Command-olion Execute-metodilla, kun SQL-lause on ensin asetettu Command-olion CommandText-ominaisuuden arvoksi. SELECT-komento tuottaa Recordset-olion, jolla hallitaan SELECT-komennon tulosjoukkoa (result set). Recordset pitää yhtä tulosjoukon riviä currenttina Fieldskokoelmana, josta sarakenimellä indeksoiden voidaan osoittaa Field-olio ja sen getstring-metodilla tai sarakkeen tietotyyppiä vastaavalla get-metodilla voidaan lukea sarakkeen arvo kyseisellä rivillä. Tulosjoukkoa voidaan selata vaihtamalla currentin rivin osoitusta Recordsetin Move-metodeilla. Connection Errors Command Error Parameters Parameter Properties Recordset Property Fields Field Stream Record Kuva 3. ADO:n objektimalli lähde: David Sceppa, Programming ADO, Microsoft Press ADO on osa Microsoftin Distributed Network Architecture DNA-arkkitehtuurin Microsoft Data Access Controls (MDAC) komponentteja. Microsoftin uudessa Java-sovellusalusta kaltaisessa.net-arkkitehtuurissa ADO:n korvaa kehittyneempi ADO.NET luokkakirjasto.

7 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 7 ( 19) Java JDBC Sunin Java-kielen tietokantaliittymäksi on rakennettu JDBC-spesifikaatio. Tämä on ADO:n kaltainen, mutta puhtaammin SQL-standardia toteuttava luokkakirjasto, jonka version 1 keskeiset rajapintaluokat ja näiden keskeiset metodit näkyvät kuvan 4 kaaviosta. DatabaseMetaData Driver... gettables( ) DriverManager Class getconnection (url, user, psw) Connection Statement ResultSet ResultSetMetaData getmetadata() setcursorname(s) getcolumncount() setautocommit(b) executequery(sql) getmetadata() getcolumnname(i) settransaction executeupdate(sql) findcolumn(name) getcolumnlabel(i) Isolation(level) cancel() next() getcolumndisplaysize(i) createstatement() close() getint(col) preparestatement(sql) getshort(col) preparecall(sql) getnumeric(col) PreparedStatement commit() getdouble(col) rollback() close() setxxxx(n, hvar) clearparameters() getfloat(col) getstring(col) getdate(col) gettime(col) gettimestamp(col) wasnull() settext(s) SQLException CallableStatement append(s) close() getsqlstate() registeroutputparameter geterrorcode() execute() getnextexcetion()... Kuva 4. JDBC 1:n rajapintaluokat ja keskeiset metodit Tätä kirjoitettaessa elämme tosin jo laajemman JDBC 3:n aikaa, mutta JDBC 1 riittää JDBC:n alkeisiin tutustumiseen. Verrattuna ADO:n luokkakirjastoon JDBC:n Statement vastaa ADO:n Commandoliota ja ResultSet ADO:n Recordset-oliota. ODBC:n tapaan JDBC:n sovituksen käytettävän DBMS-järjestelmän palveluihin tekee järjestelmäkohtainen JDBC-ajuri (Driver), jonka tulee löytyä Java-sovellusta ajettaessa CLASSPATH:n poluista. Esimerkki 1. Seuraava Sunin esimerkistä muokattu viittellinen Java-koodi havainnollistaa JDBC:n käyttöä: import java.sql.*; public class ReadResultSet { public static void main(string args[]) { String url = "jdbc:mysubprotocol:mydatasource"; Connection con; Statement stmt; try {

8 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 8 ( 19) Class.forName("myDriver.ClassName"); catch(java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); try { con = DriverManager.getConnection(url, "mylogin", "mypassword"); stmt = con.createstatement(); ResultSet rs = stmt.executequery( "SELECT CoffeeName, Price FROM Coffees"); while (rs.next()) { String name = rs.getstring("coffeename"); float price = rs.getfloat("price"); System.out.println(name + " " + price); rs.close(); stmt.close(); con.close(); catch(sqlexception ex) { System.err.println("-----SQLException-----" + "\nsqlstate: " + ex.getsqlstate() + ", Message: " + ex.getmessage() + ", Vendor SQLcode: " + ex.geterrorcode()); Esimerkkiohjelma etsii Javan JRE\lib\ext hakemiston tai CLASSPATHin hakemistojen jar-tiedostoista ohjelman nimeämän JDBC-ajurin (mydriver.classname, katso taulukko 1), luo yhteyden url-muuttujan määrittämään tietokantapalvelimeen (mydatasource) käyttäen protokollaa mysubprotocol mylogin-käyttäjän nimissä tämän salasanalla. Taulukko 1. JDBC-ajureita DBMS JDBC-ajuri Oracle (Thin) oracle.jdbc.driver.oracledriver Solid solid.jdbc.soliddriver DB2 UDB COM.ibm.db2.jdbc.net.DB2Driver SQL Server URLin todellinen muoto merkkijonon jdbc: jälkeen riippuu käytettävästä JDBCajurista. Tästä on koottu esimerkkejä taulukkoon 2. Taulukko 2. URL-muotoja DBMS URL Oracle (Thin) jdbc:oracle:thin:@<server>:<portti>:<sid> Solid jdbc:solid://<server>:<portti> DB2 UDB jdbc:db2://<server>:<portti>/<dbname> SQL Server

9 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 9 ( 19) Huom: DB2:n net-ajuri edellyttää, että palvelimelle on käynnistetty DB2 Java Daemon prosessi. Käyttäen Statement-olion stmt executequery-metodia esimerkkisovelluksemme tekee SELECT-kyselyn tauluun Coffees saaden vastauksen ResultSet-olioon rs, listaa kaikki tulosjoukon rivit ja sulkee lopuksi oliot rs, stmt ja con. JDBC-käsittely tapahtuu oletusarvoisesti AutoCommit-moodissa ja tässä pienimuotoisessa esimerkissämme ei siis ole käytetty transaktionaalista tietokantakäsittelyä. SQLJ ja JDO Muita Javan tietokantakäsittelyyn kehitettyjä teknologioita ovat SQLJ ja JDO. SQLJohjelminnissa Java-ohjelmaan upotetaan ESQL:n tapaan SQL-lauseita, joista ennen varsinaista Java-käännöstä generoidaan SQLJ-esikääntäjällä vastaava JDBC-käsittely. JDO puolestaan on olio-ohjelmoinnin myös tietokantakäsittelyyn laajentava uusi teknologia. Näitä on kuvattu mm. Connollyn ja Beggin oppikirjassa Database Systems. Script-kielten tietokantaliittymiä ODBC:n menestyksen innostamana muutamiin yleisiin script-kieliin on myös rakennettu tietokantaliittymiä. Näistä melko laajassa käytössä ja esimerkiksi Oraclen tukemia ovat script-kielet Perl ja PHP. Näiden tietokantaliittymät ovat kuitenkin standardoimattomia ja ohitamme niiden kuvaukset Edellä kuvattuja data access teknologioita harjoitellaan Helian TIKO-2000 tietokantaohjelmointi-opintojaksolla.

10 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 10 ( 19) Oraclen JDBC-toteutus Oracle on toteuttanut 2 client-työasemien JDBC-ajuria: OCI-ajurin ja Thin-ajurin. Molemmat tukevat hajautettuja transaktioita XA-protokollalla. OCI-ajuri tukee kaikkia Oraclen käyttämiä verkkoprotokollia ja edellyttää, että client-työasemaan on asennettu Oracle client-kirjastot. Thin-ajurin osalta riittää vain sen itsensä asennus työasemaan. Thin-ajuri sisältää SQL*Net valmiuden, tukee vain TCP/IP protokollaa ja edellyttää vain että palvelinpäässä on Oraclen TNS Listener. Oracle-tietokantaan voidaan tallettaa myös Java-luokkia, joita voidaan käyttää talletettujen PL/SQL-proseduurien ja funktioiden tapaan. Näitä varten Oracle on toteuttanut Thin-ajurin myös tietokantapalvelimessa, mutta ohitamme tämän kuvauksen. Tarkempia ohjeita Oraclen JDBC-ohjelmoinnista löydät Oraclen JDBC Developer s Guide and Reference käsikirjasta, jonka löydät Info9-palvelimen Oracle-manuals osoitteesta... Esimerkki 2: Oraclen JdbcTest-ohjelma Listataan Scott-käyttäjän EMP-taulun työntekijöiden sukunimet käsikirjasta löytyneellä JdbcTest-ohjelmalla (jota on hieman muutettu) import java.sql.*; class JdbcTest { public static void main (String args []) throws SQLException { String url = "jdbc:oracle:thin:@info9.helia.amk:1526:tux2"; try { Class.forName("oracle.jdbc.driver.OracleDriver"); catch(java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); System.exit(-1); // lopetus ajuriongelman vuoksi try { Connection con = DriverManager.getConnection(url,"testeri","psw"); // Query the employee names Statement stmt = con.createstatement (); ResultSet rset = stmt.executequery ( "SELECT ename FROM Scott.emp"); // Print the name out while (rset.next ()) { System.out.println (rset.getstring (1)); //close the result set, statement, and the connection rset.close();

11 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 11 ( 19) stmt.close(); con.close(); catch(sqlexception ex) { System.err.println("-----SQLException-----" + "\nsqlstate: " + ex.getsqlstate() + ", Message: " + ex.getmessage() + ", Vendor SQLcode: " + ex.geterrorcode()); Tallenna ohjelma JdbcTest.java nimisenä hakemistoon C:\Temp ja kopioi myös Oraclen Thin-ajuri classes12.jar hakemistoon C:\Temp Avaa Windowsin cmd.exe-ikkuna ja anna komennot C: CD Temp SET CLASSPATH=.;C:\Temp\classes12.jar Javac JdbcTest.java Java JdbcTest Esimerkki 3. Tilisiirto sarjallistuvuusongelmasta uusintayrityksillä selviytyvänä JDBC-transaktiona Tässä käytetään aikaisempaa transaktioharjoitusten Tilit- taulua ja sen sisältöä: CREATE TABLE Tilit ( Tilino INTEGER NOT NULL PRIMARY KEY, Saldo INTEGER NOT NULL ); INSERT INTO Tilit (Tilino,Saldo) VALUES (101202,10000); INSERT INTO Tilit (Tilino,Saldo) VALUES (220330,20000); COMMIT WORK; Esimerkissä sovelletaan SQL-oppikirjassani 1989 esittämääni vankan transaktion suunnittelumallia. Tuo COBOL-kieleen upotettu malli on nyt toteutettu Javaohjelmassa sarjallistuvuusongelman hallinnan suunnittelumallin testaamista varten. Tämän vuoksi tähän on ohjelmoitu tauko ensimmäiseltä tililtä noston jälkeen. /** * Helia, Martti Laiho * * Sarjallistuvuusongelmasta uusintayrityksillä selviävä Tilisiirtotransaktio */ import java.io.*; import java.sql.*; public class Tilisiirto2 { public static void main (String args[]) throws Exception {

12 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 12 ( 19) java.sql.connection conn = null; boolean jatketaanyrityksia = false; int counter = 0; String SQLState = "*****"; String errmsg = ""; int siirtosumma = 100; System.out.println("Tilisiirtotesti versio 1.0"); try { Class.forName("oracle.jdbc.driver.OracleDriver"); String scon = "jdbc:oracle:thin:@info9.helia.amk:1526:tux2"; conn = java.sql.drivermanager.getconnection(scon,"testeri","psw"); catch (Exception e) { System.out.println("** Tietokantayhteys ei avaudu: " + e.getmessage()); System.exit(-1); do { counter++; try { conn.setautocommit(false); // transaktio alkaa conn.settransactionisolation( Connection.TRANSACTION_SERIALIZABLE); errmsg = ""; jatketaanyrityksia = false; PreparedStatement pstmt1 = conn.preparestatement( "UPDATE Tilit SET saldo = saldo -? WHERE tilino =?"); pstmt1.setint(1, siirtosumma); pstmt1.setint(2, ); // miltä tililtä pstmt1.executeupdate(); // pause vain samanaikaisuuden testiä varten - odotetaan toisella // sovelluksella testattavaa ristiriitaista päivitystä System.out.print("\nJatka ENTER-nappaimella..."); BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); String s = reader.readline(); // pausen loppu PreparedStatement pstmt2 = conn.preparestatement( "UPDATE Tilit SET saldo = saldo +? WHERE tilino =?"); pstmt2.setint(1, siirtosumma); pstmt2.setint(2, ); // mille tilille pstmt2.executeupdate(); conn.commit(); pstmt1.close(); pstmt2.close();

13 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 13 ( 19) catch (SQLException ex) { try { errmsg = "\nsqlexception:"; while (ex!= null) { SQLState = ex.getsqlstate(); // tutkitaan onko sarjallistuvuusongelma if (SQLState.equals("40001") // Solid, SQL Server,... SQLState.equals("61000")) // Oracle jatketaanyrityksia = true; errmsg = errmsg + "SQLState: "+ SQLState; errmsg = errmsg + ", Message: "+ ex.getmessage(); errmsg = errmsg + ", Vendor: "+ ex.geterrorcode() + "\n"; ex = ex.getnextexception(); conn.rollback(); // println vain testiä varten System.out.println("** Tietokantavirheita: " + errmsg); if (jatketaanyrityksia) { long pause = (long) (Math.random () * 10000); // max 10 sek. System.out.println("Odotetaan "+pause+ " msekuntia"); // testiä Thread.sleep(pause); catch (Exception e) { // mahdolliset SQLException käsittelyn ongelmat conn.rollback(); ; // SQLException catch (Exception e) { conn.rollback(); ; // tähän muiden poikkeusten käsittely // muut exceptionit while (jatketaanyrityksia && counter < 10); // max 10 yritystä conn.close(); System.out.println("\n Ohjelman loppu. "); Testiajon käsikirjoitus on seuraava: 1. Käynnistetään ohjelma ja saadaan ilmoitukset: Tilisiirtotesti versio 1.0 Jatka ENTER-nappaimella SQLPlus-istunnosta on tehty ohjelman kanssa vastakkainen tilisiirto komennolla UPDATE Tilit SET saldo=saldo 200 WHERE tilino=220330; 3. jatketaan ohjelman suoritusta ENTER-näppäimellä. 4. SQLPlus-istunnosta annetaan komento UPDATE Tilit SET saldo=saldo WHERE tilino=101202;

14 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 14 ( 19) 5. Ohjelma tulostaa esimerkiksi seuraavaa ** Tietokantavirheita: SQLException:SQLState: 61000, Message: ORA-00060: deadlock detected while waiting for resource, Vendor: 60 Odotetaan 7671 msekuntia Jatka ENTER-nappaimella SQLPlus-istunnosta annetaan COMMIT tai ROLLBACK. Jos SQLPlus-istunnosta ei jatketa kilpailevia transaktioita, saa ohjelma tilisiirron suoritettua testiin ohjelmoidun odotusajan jälkeen. Esimerkin Java-ohjelma ei pyri olemaan täydellinen malli Java-ohjelmoinnista. Esimerkki näyttää kuitenkin JDBC-ohjelmoinnista mm. parametroitujen SQLkomentojen käytön, standardoidun SQLState-ilmaisimen käytön, jne. Monia tärkeitä JDBC-ohjelmoinnissa tarvittavia tekniikoita jää tässä pienessä esimerkissä esittelemättä, mm. SQL:n NULL-arvojen käsittely, SQL:n tietotyyppien ja Javan tietotyyppien vastaavuudet, aikatietojen käsittely ja SQL-murteiden sovitus JDBC:n escape-notaatioilla, jne. Vikasietoinen versio tästä transaktiomallista edellyttäisi tietokantayhteyksien avaamista jokaisella yrityskerralla. Näitä transaktioiden suunnittelumalleja tutkitaan tietokantaohjelmoinnin opintojaksolla tarkemmin.

15 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 15 ( 19) Osa II Sovelluspalvelimet ja monikerrosarkkitehtuuri J2EE Sunin ja kumppaneiden määrittämä Java TM 2 Platform Enterprise Edition eli J2EE spesifikaatio määrittää Java-pohjaisen sovellusarkkitehtuurin (kuva 5), jonka takana ovat Microsoftia lukuunottamatta lähes kaikki ITC-alan keskeiset ohjelmistotoimittajat, mm. IBM ja Oracle, joilta on omat sovelluspalvelintoteutukset. Selain Web-palvelin Sovelluspalvelin Security Manager Transaction Manager Connection Pool Java-sovellus JDBC JDBC Tietokantapalvelin JDBC Kuva 5. J2EE-arkkitehtuuri lähde: Java TM 2 Platform Enterprise Edition Specification, v5.0 J2EE-arkkitehtuurin mukaan tietokantakäsittely toteutetaan JDBC:llä Javasovelluksista (Client/Server), Web-komponenteista (servletit ja Java beanit) tai sovelluspalvelimeen asennettavista EJB-komponenteista. Sovelluspalvelimen Transaction Manager mahdollistaa transaktionaaliset EJB-komponenttien metodit, jotka voivat käyttää luotettavasti useaakin tietokantaa samassa globaalissa transaktiossa ja transaktio voi kattaa useankin komponentin metodin. Tietokantapalvelimet ovat tässä Resource Managereita, jotka hallitsevat kannassa toteutetut paikalliset transaktiot (local transaction) osana sovelluspalvelimen globaalia eli hajautettua transaktiota. Sovelluspalvelimen Transaction Manager toimii hajautetun transaktion koordinoijana neuvotellen transaktion Commit-operaatiosta transaktioon osallistuneiden Resource Managereiden kanssa ns. XA Two-Phase

16 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 16 ( 19) prokollalla (2PC), jossa transaktio perutaan globaalisti, jos yksikin paikallinen transaktio jäisi committoimatta. Tämä edellyttää, että tietokantayhteyksissä käytetyt JDBC-ajurit tukevat XA-protokollaa. JDBC:n tietokantayhteyden avaaminen on melko raskas operaatio. Tätä varten sovelluspalvelimen Connection Pool palvelu pitää varastossa valmiita fyysisiä tietokantayhteyksiä ja komponentin avatessa tietokantayhteyden avaaminen onkin vain looginen operaatio, jossa komponetti saa käyttöönsä jo valmiin tietokantayhteyden. Komponentin sulkiessa tietokantayhteyden tämä onkin looginen operaatio, jossa yhteyttä ei suljeta, vaan se siirretään uudelleenkäytettäväksi yhteysaltaaseen. Tämä mahdollistaa sovelluksen skaalautumisen palvelemaan laajempaa samanaikaista käyttäjäjoukkoa. EJB-komponentteja on kolmea erilaista tyyppiä, joiden tietokantakäsittelyn ohjelmointimallit poikkeavat toisistaan. Session Bean tyypeissä tietokantakäsittely toteutetaan JDBC:llä. Entity Bean tyypeistä on käytettävissä tietokantakäsittelyn osalta malli, jossa tietokantakäsittely ohelmoidaan itse, ja malli, jossa tietokantakäsittely hoidetaan sovelluspalvelimen Persistence Managerin toimesta automaattisesti. Ohitamme kuitenkin tällä erää tämän mielenkiitoisen aiheen. J2EE-arkkitehtuuria käsitellään tarkemmin Helian TIKO-2000 J2EEopintojaksolla.

17 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 17 ( 19).NET, ADO.NET ja Client-Side XML Microsoftin uusi.net-arkkitehtuuri muistuttaa pitkälti Sunin J2EE-arkkitehtuuria ja näiden kehitys kulkeekin melkein tasajalkaa. Tietokantakäsittely toteutetaan.netarkkitehtuurissa ADO.NET luokkakirjastoilla, jota havainnollistaa viitteellisesti kuva 6. Client.NET Data Provider Generic objects with interfaces, versions depending on the Data Provider Object Array Object DataSet DataRelation Table X Table Y.ConnectionString.Open Transaction.BeginTransaction.Commit Connection.Rollback.Close Parameters.CreateCommand.ExecuteNonQuery Command.ExecuteScalar.CommandText.ExecuteReader.Read.Get<type> IDataReader DataReader DBMS DataAdapter XML XSD Kuva 6. ADO.NET:in client-side ja ADO.NET Data Providerien objektit JDBC:hen verrattuna mielenkiintoisia ratkaisuja ovat mm. Transaction-oliot, Command-olion erilaiset Execute-metodit, ResultSet-olioa vastaavan olion puuttuminen. ADO:n Recordset on korvattu toisaalta tulosjoukon forward-only tavalla purkavalla DataReader-oliolla ja toisaalta client-sovelluksen muistiavaruudessa toteutetulla varsinaiseen tietokantaan yhteydettömällä tietokantakopiolla DataSet, jossa voi olla useita paikallisia tauluja, näissä eheysrajoituksia ja näiden välillä eheyttä valvovia yhteyksiä. DataSetin käsittely ei ole SQL-pohjaista vaan navigoivaa. DataSetin rakenteet voidaan serialisoida WriteXmlSchema-metodilla XSD-tyyppiseen XML Schema tiedostoon ja rakenteet voidaan myös luoda ReadXmlSchemametodilla olemassaolevasta XSD-tiedostosta. Vastaavasti Datasetin tietosisältö voidaan serialisoida WriteXml-metodilla XML-tiedostoon ja lukea ReadXmlmetodilla XML-tiedostosta. DataSetista voidaan instantioida muistiin erillinen XmlDataDocument-tyyppinen DOM-puu, jota voidaan käsitellä XPath-kielellä ja XmlDataDocumentin tietosisältö voidaan synkronoida takaisin DataSetin tietosisällöksi.

18 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 18 ( 19) Kuvan 6 kaaviosta puuttu mm. XmlReader-olio, jolla voidaan lukea suoraan tietokannasta tulevaa XML-virtaa..NET-arkkitehtuuria ja ADO.NET-ohjelmointia käsitellään tarkemmin Helian TIKO-2000.NET-opintojaksolla Web Services ja SOA Sekä J2EE että.net-arkkitehtuurit sisältävät Web Services palvelut, jossa palvelua käytetään XML-pohjaisilla alustariippumattomilla SOAP-sanomilla. Näin Web Services tarjoaa keinon integroida J2EE ja.net-pohjaisia järjestelmiä. Tästä palveluorientoituneesta sovellusarkkitehtuurista käytetään nimitystä SOA (Service Oriented Architecture). Sovelluspalvelinten lisäksi myös uudet Oracle ja SQL Server versiot mahdollistavat Web Service palvelun suoraan tietokantapalvelimesta.

19 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 19 ( 19) Harjoitukset (Tuntiharjoituksia opettajan johdolla) Huom. Käytä mieluimmin myy-palvelimella olevaa työhakemistoasi. Jos käytät paikallisen C-levyn työhakemistoa, niin muista poistaa ohjelmasi levyltä harjoituksen lopuksi, ettei ohjelmiin kirjoitetut käyttäjätunnuksesi joutuisi vääriin käsiin! Harjoitus 1. Kokeile tekstissä esitetyn esimerkki 2:n JdbcTest-ohjelmaa sellaisenaan. Info9:n TUX2-instanssissa on Scott-käyttäjällä EMP-taulu ja testeri-käyttäjällä lukuoikeus Scott-käyttäjän esimerkkitauluihin. Harjoitus 2. Sovella esimerkkiä 2 TUX1-instanssissa omalla tunnuksellasi oleviin Takkulan tauluihin kyselyyn 29: Minkä arvosanan kukin oppilas on eri kursseista saanut. Hae jokaiselle oppilaalle jokaisen suorituksen arvosana sekä aine- ja kurssitunnus ja aineen nimi. (Kaikilla oppilailla ei välttämättä ole arvosanoja, myös nämä tulostuvat). Lajittele oppilaan nimen mukaan..

RDBMS - Yhteyskäytännöt

RDBMS - Yhteyskäytännöt HAAGA-HELIA Heti-09 1 (11) RDBMS - Yhteyskäytännöt Johdanto... 2 Upotettu SQL... 3 ESQL esimerkki... 4 ODBC... 5 Visual Basic ja ADO... 6 JAVA ja JDBC... 7 JDBC esimerkki... 8 Oracle ja JDBC... 9 Connection

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TIKO-05 Sovellusarkkitehtuurit 1 ( 19) Sovellusarkkitehtuurit Edellä olemme tutustuneet SQL-kieleen ja transaktiokäsittelyn periaatteisiin. Tarkastelemme tässä osiossa tietokantakäsittelyn ohjelmointia

Lisätiedot

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokantaohjelmointi 23.2.2000. Harri Laine 1. SQL:n käyttö ohjelmissa

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokantaohjelmointi 23.2.2000. Harri Laine 1. SQL:n käyttö ohjelmissa SQL:n käyttö ohjelmissa Tietokannan käyttö ohjelmasta Miksi vuorovaikutteinen käyttö ei riitä? kielen hallinta: maallikot? yhdistetään yleiskielen ja tietokantakielen edut, mm.» monimutkaisempi laskenta»

Lisätiedot

käännös käännösvaiheessa tarkasettaan linkitys

käännös käännösvaiheessa tarkasettaan linkitys Upotettu SQL Ohjelmoitaessa 3GL kielillä, käytetään relaatiotietokantaa yleensä esikääntäjien avulla. Tietokannan valmistaja toimittaa funktiokirjaston, jota esikääntäjän avulla hyödynnetään. Ongelmaksi

Lisätiedot

EXEC SQL BEGIN DECLARE SECTION

EXEC SQL BEGIN DECLARE SECTION Tietokantaohjelmointi Tietokantaa käytetään harvoin suoraan kyselyliittymän kautta Tyypillisesti käyttö tapahtuu sovellusohjelman kautta Sovellusohjelmaa laadittaessa vaihtoehtoja tietokantakäsitettelyn

Lisätiedot

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

Lisätiedot

Java ja tietokannan käsittely (JDBC)

Java ja tietokannan käsittely (JDBC) Java ja tietokannan käsittely (JDBC) Javan tietokannan käsittely luokat (java.sql.*) Yhteys tietokantaan Tietokannan yhteyden sulkeminen Tiedon haku tietokannasta Tiedon päivitys tietokantaan Transaktio

Lisätiedot

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos Insert lauseella on kaksi muotoa: insert into

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Tietokantaohjelmoinnin tekniikkoja Java-kielellä Tietokantaohjelmoinnin tekniikkoja Java-kielellä Ville Kuokkanen Helsinki 6. helmikuuta 2003 Relaatiotietokannat nyt seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i Tietokantaohjelmoinnin

Lisätiedot

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen Pedacode Pikaopas Tietokantaa hyödyntävän sovelluksen luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, Netbeans-työkalulla luodaan uusi yksinkertainen Java DB -tietokantaa hyödyntävä sovellus. Opas kattaa

Lisätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) SQL-transaktiot Lähes kaikissa tietojärjestelmissä tietojen talletus on toteutettu tietokannoissa, joita käytetään tietokannanhallintajärjestelmien (DBMS) palvelujen

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

Tietokannan webbikytkentä. Janne Petäjä

Tietokannan webbikytkentä. Janne Petäjä Tietokannan webbikytkentä Janne Petäjä Helsinki 7. huhtikuuta 2003 Relaatiotietokannat nyt - seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Tietokannan webbikytkentä Janne Petäjä Relaatiotietokannat

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Microsoft Visual Studio 2005

Microsoft Visual Studio 2005 Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000 Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->

Lisätiedot

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative

Lisätiedot

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja

Lisätiedot

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Jouni Huotari Martti Laiho (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta) opintokokonaisuutta)

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Oracle-tietokanta. Riku Nykänen 1/2010

Oracle-tietokanta. Riku Nykänen 1/2010 Oracle-tietokanta Riku Nykänen 1/2010 Sisältö Oraclen historiaa Tietokannan rakenne ja arkkitehtuuri Oraclen ominaisuuksia Tietokannan hallintatyökalut DB configuration assistant (DBCA) Enterprise Manager

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja Lohtu-projekti Ylläpitäjän dokumentti Versiohistoria: 1.0 12.5.2003 Ensimmäinen versio Andreas Asuja Helsinki 12. toukokuuta 2003 Kimmo Airamaa, Andreas Asuja, Mari Muuronen, Seppo Pastila, Virve Taivaljärvi

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma. Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä

Lisätiedot

TIETOKANNAT JOHDANTO

TIETOKANNAT JOHDANTO TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2011 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

EJB-komponenttien tietokantakytkentä

EJB-komponenttien tietokantakytkentä hyväksymispäivä arvosana arvostelija EJB-komponenttien tietokantakytkentä Antti Harkola Helsinki 17. huhtikuuta 2003 Relaatiotietokannat nyt seminaari Helsingin yliopisto Tietojenkäsittelytieteen laitos

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Ylläpitodokumentti Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 16.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

Microsoft Visual J++ ohjelmointiympäristö

Microsoft Visual J++ ohjelmointiympäristö Microsoft Visual J++ ohjelmointiympäristö Ohjelmistotuotantovälineet seminaarin alustus Raine Lehto Helsingin yliopisto Tietojenkäsittelytieteen laitos 08.11.2000 Helsinki Sisällys 1 Johdanto...2 2 Sovelluskehys

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

HSMT J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &... HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla Petri Tumppila/Bemecon Oy, petri.tumppila@bemecon.fi Tuomas Pystynen/Deepbase Oy, tuomas.pystynen@deepbase.com OUGF 4.11.2004 Agenda Ympäristö

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

public static void main (String [] args)

public static void main (String [] args) HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,

Lisätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri Järjestelmäarkkitehtuuri (TK081702) ja Järjestelmäarkkitehtuuri Sovellukset ovat olemassa Järjestelmien uudistaminen vie yleensä arvioitua enemmän resursseja ja kestää arvioitua kauemmin Migration (Migraatio

Lisätiedot