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



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

Java ja tietokannan käsittely (JDBC)

EXEC SQL BEGIN DECLARE SECTION

RDBMS - Yhteyskäytännöt

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

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

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

Tietokannat II -kurssin harjoitustyö

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

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

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

6 WWW-tietokantasovellukset Relaatiotietokannan suunnittelusta 134

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

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 K2009

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

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

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit

Tietokannat II -kurssin harjoitustyö

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

LINUX-HARJOITUS, MYSQL

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

1. Omat operaatiot 1.1

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Tietokannan webbikytkentä. Janne Petäjä

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

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Ohjelmoinnin perusteet Y Python

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

ASP ja DHTML Seppo Räsänen

SQL:N PERUSTEET MARKKU SUNI

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

HELIA 1 (11) Outi Virkki Tiedonhallinta

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Luokat ja oliot. Ville Sundberg

ImpactTest. Käyttöohje. ImpactTest Käyttöohje. Testem Oy, (17)

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

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

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen Storage IT varmuuskopiointipalvelun.

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

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

SUURTEN OLIOIDEN TALLENNUS TIETOKANTAAN

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

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

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Jussi Antero Tuori LOHKOKIRJANPITO-SOVELLUS

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

15. Ohjelmoinnin tekniikkaa 15.1

19. Olio-ohjelmointia Javalla 19.1

Artikkelien muokkaaminen sekä sisältöeditorin peruskäyttö

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

14. Hyvä ohjelmointitapa 14.1

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

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Tikon ostolaskujen käsittely

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

5. HelloWorld-ohjelma 5.1

Maiju Mykkänen Susanna Sällinen

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Javan perusteita. Janne Käki

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

4. Olio-ohjelmoinista lyhyesti 4.1

Liitokset - haut useaan tauluun

KÄYTTÖVALTUUSHALLINTA (KVH) 1 (14) Käyttöohje rekisterinpidon yhteyshenkilölle

Harjoitus 5 (viikko 41)

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

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

SQL - STRUCTURED QUERY LANGUAGE

13. Hyvä ohjelmointitapa (osa 1) 13.1

2013 -merkistä tunnistat uudet ominaisuudet

15. Ohjelmoinnin tekniikkaa 15.1

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

Testaussuunnitelma NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

SQL Buddy JAMK Labranet Wiki

Ohjelmoinnin perusteet Y Python

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Yhteenvetofunktiot Näkymät Tietokannan ylläpito Tietokantatapahtumat... 88

CSE-A1200 Tietokannat

Tikon ostolaskujen käsittely

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Java-kielen perusteet

Sovellusarkkitehtuurit

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

CSE-A1200 Tietokannat

Transkriptio:

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 avulla) Tietokannan käsittely luodaan yhteys tietokantaan tai muuhun tietolähteeseen lähetetään SQL lauseita suoritettaviksi käsitellään mahdollista SQL-lauseen tulosjoukkoa Tietokannan käsittelyyn JSE:ssä on pakkaus java.sql.*, jossa ovat mm. seuraavat luokat:

HAAGA-HELIA ICT1TA006: Ohjelmointi 2 /5 Luokka tai rajapintaluokka Connection Statement PrepareStatement ResultSet DatabaseMetadata ResultSetMetaData SQLException Käyttö Vastaa tietokantayhteydestä luoden yhteyden tietokannan ja ohjelman välille. Yhteys tulee vapauttaa close-metodilla. DriverManager vastaa tietokantakohtaisesta yhteydestä. Olion avulla hoidetaan SQL-käskyjen suoritus ja niiden tulosten hallinta Olion avulla hoidetaan parametroituja SQL-käskyjä. Olion avulla hallitaan kyselyjen tulokset. Olion avulla voidaan tarkastella tietokannan tietohakemistoa. Olion avulla saadaan tietoa haettujen rivien sarakkeiden nimistä ja tietotyypeistä. Olion avulla käsitellään tietokannasta saadut virheilmoitukset. Tietokannan käsittely Kun tietokannassa olevia tietoja käsitellään ohjelmasta, suoritetaan usein seuraavantyyppiset toiminnot: Rekisteröi JDBC-ajuri Luo yhteys tietokantaan Tee SQL-kysely Lue tulosjoukkoa Sulje tulosjoukko [Tee SQL-kysely,...] Lopeta SQL-kyselyt JDBC ajurin rekisteröinti Ohjelma tarvitsee käyttöönsä tietokantakohtaisen JDBC ajuriluokan. Luokka ladataan vasta ohjelman ajoaikana, joten sitä ei tarvitse ottaa huomioon ohjelman käännösaikana. Me käytämme mysql-ajuria. Rekisteröitäessä ajuria siitä ei tarvitse luoda uutta oliota, koska se luodaan automaattisesti käytettäessä Class.forName- metodia.

HAAGA-HELIA ICT1TA006: Ohjelmointi 3 /5 JDBC-ajurin rekisteröinti tapahtuu seuraavasti: String JDBCAjuri = "com.mysql.jdbc.driver"; Class.forName(JDBCAjuri).newInstance(); Tietokanta-ajuri on oma ohjelmansa, joka täytyy ladata sovellukseen yhteistoimintaan oman sovelluksemme kanssa. Siitä on oma ohjeistuksensa. Luo yhteys tietokantaan JDBC ajurin rekisteröinti ei luo vielä yhteyttä kantaan, vaan yhteys on tehtävä erikseen. Seuraavassa on esimerkki kutsusta, jossa luodaan yhteys mysql-kantaan. Yhteys muodostetaan ja sitä hoidetaan Connection olion avulla. Connection con = DriverManager.getConnection(); Yhteydenmuodostuksen voi tehdä seuraavasti: private Connection tietokantayhteys; String url = ""jdbc:mysql://localhost:3306/benan"; tietokantayhteys = DriverManager.getConnection(url,"benan", "hotugh84v"); url-merkkijonossa annetaan ajurin nimi, portin numero ja tietokanta, johon tietokantayhteys palvelimelle ja omaan työasemaan muodostuu. tietokantayhteys puolestaan kertoo, että mysql-tietokantaa käsitellään ajurilla, kanta on nimeltään benan ja viimeisenä kannan salasana. Huomaa, että oikeassa elämässä emme suinkaan näin vapaasti levittele tunnuksia ja salasanoja. Nyt on kuitenkin kyseessä oppiminen ja testaus, joita käytämme tietokantaharjoituksiin. SQL-kysely JDBC yhteyttä käytettäessä tietokantaa käsitellään SQL-lauseiden avulla. Haettaessa tietoa tietokannassa suoritetaan ohjelmassa seuraavat vaiheet. Luodaan SQL-lause Suoritetaan lause Haetaan tulostiedot suljetaan yhteys tulosjoukkoon

HAAGA-HELIA ICT1TA006: Ohjelmointi 4 /5 Lauseen luonti vaatii statement-olion olemassaolon ja jos vapaata oliota ei ole käytettävissä, luodaan se seuraavasti: Statement stmt = con.createstatement(); Koska select-käsky voi palauttaa tuloksenaan monta riviä, luodaan sen suorituksen yhteydessä ResultSet- luokan olio, josta ohjelma noutaa tuloksen rivi kerrallaan käsittelyyn. Käskyn suoritus ja tulosjoukon käsittelyolion luominen tapahtuu seuraavan esimerkin mukaisesti: ResultSet rs = stmt.executequery( "SELECT sarakenimi1, sarakenimi2 FROM taulunimi "); Käsiteltävänä olevan rivin jokainen tarvittava sarakearvo on erikseen haettava metodilla getxxx, missä XXX vastaa ohjelmaan palautettavaa tietotyyppiä. Metodille annetaan attribuutiksi kursorista osoitetusta rivistä haettavan sarakkeen nimi. On myös mahdollista osoittaa haluttu sarake sen järjestysnumeron mukaisesti (ensimmäinen sarake on numeroltaan 1). Luokan ResultSet olio rs sisältää haetut rivit eli taulunimi-taulun kaikki rivit ja niiden sarakkeet sarakenimi1 ja sarakenimi2. Kun haluamme käsitellä rivejä ohjelmassa, haemme ne yksitellen käsittelyyn. Kutsumme kursoriksi osoitinta, joka osoittaa käsiteltävänä olevaan riviin.. Alunperin kursori osoittaa tulosjoukon alkuun siten, että ensimmäinenkin rivi on myös haettava ResulSetobjektin next- metodilla. Yleisimmät metodit ovat getstring, jota voi käyttää lähes kaikkien tietokannan tietotyyppien kanssa getfloat getint Esimerkki ohjelman SQL-kyselyn suorittamisesta. Ohjelmassa haetaan tulosjoukko tietokannasta ja tulostetaan sisältöä. String s; float n;... String query = "SELECT sarakenimi1, sarakenimi2 FROM taulunimi"; ResultSet rs = stmt.executequery(query); while (rs.next()) { s = rs.getstring("sarakenimi1"); n = rs.getfloat("sarakenimi2"); System.out.println(s + " " + n); } Sulje tulosjoukko Kun ohjelmassa on käsitelty kyselyn antama tulosjoukko, tulee siltä osin varatut resurssin vapauttaa. Tähän käytetään kutsua stmt.close (); Kun edellä ollut kutsu on suoritettu, voidaan Statement luokan olio stmt käyttää uudelleen, ts. siihen voidaan asettaa suoritettavaksi uusi SQL-lause.

HAAGA-HELIA ICT1TA006: Ohjelmointi 5 /5 Sulje tietokantayhteys Kun tietokantayhteyttä ei enään tarvita ohjelmassa, tulee se sulkea ja näin vapauttaa tietokannasta varatut resurssit. Yhteyden sulkeminen tapahtuu kutsulla. conn.close(); Lisäoppia innokkaille löytyy mm. seuraavilta sivustoilta: Oraclen JDBC-Tutorial: http://docs.oracle.com/javase/tutorial/jdbc/ Tutorialspoint: http://www.tutorialspoint.com/jdbc/