Wspóªpraca z zewn trznym oprogramowaniem: JDBC, JNI (Java Native Interface)
|
|
- Oskar Kozak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Wspóªpraca z zewn trznym oprogramowaniem: JDBC, JNI (Java Native Interface) Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW
2 Java JDBC Java JDBC (Java DataBase Connectivity) jest interfejsem Java API sªu» cym do ª czenia i wykonywania kwerend z baz danych. JDBC API u»ywa sterowników jdbc (JDBC driver) do ª czenia si z baz danych. Przed JDBC ODBC API byª baz danych API do ª czenia i wykonywania kwerendy z baz danych. ODBC API u»ywa sterownika ODBC, który jest napisany w j zyku C (tzn. zale»ny od platformy i niezabezpieczony). Dlatego w Javie zdeniowano wªasny interfejs API (JDBC API), który u»ywa sterowników JDBC (napisanych w j zyku Java). Pakiety obsªuguj ce JDBC to java.sql i javax.sql 2 / 51
3 Komponenty JDBC (1/2) DriverManager: klasa zarz dzaj ca list sterowników bazy danych. Odpowiada» daniom poª czenia z aplikacji Java z odpowiednim sterownikiem bazy danych przy u»yciu podprotokoªu sieci. Pierwszy sterownik rozpoznaj cy pewien podprotokóª w ramach JDBC b dzie u»ywany do nawi zania poª czenia z baz danych. Driver: interfejs obsªuguj cy komunikacj z serwerem bazy danych. U»ywa si go bardzo rzadko. Zamiast tego u»ywamy obiektów DriverManager, które zarz dzaj obiektami tego typu. Connection: interfejs ze wszystkimi metodami kontaktowania si z baz danych. Obiekt poª czenia reprezentuje kontekst komunikacyjny, tzn. caªa komunikacja z baz danych odbywa si wyª cznie za po±rednictwem obiektu poª czenia. 3 / 51
4 Komponenty JDBC (2/2) Statement: U»ywa si obiektów utworzonych z tego interfejsu, aby przesªa kwerendy SQL do bazy danych. Niektóre interfejsy pochodne akceptuj parametry, aby móc wykonywa procedury skªadowane. ResultSet: Obiekty te przechowuj dane pobrane z bazy danych po wykonaniu zapytania SQL przy u»yciu obiektów Statement. Dziaªaj jako iterator, dzi ki czemu mo»na porusza si w danych. SQLException: klasa wyj tków obsªuguj ca wszelkie bª dy wyst puj ce w aplikacji u»ywaj cej baz danych. 4 / 51
5 Architektura JDBC Interfejs JDBC obsªuguje zarówno modele dwuwarstwowych, jak i trójwarstwowych do przetwarzania baz danych, ale generalnie architektura JDBC skªada si z dwóch warstw - JDBC API: zapewnia poª czenie z aplikacj do Managera JDBC. JDBC Driver API: obsªuguje poª czenie JDBC Manager-to-Driver. Interfejs JDBC API u»ywa mened»era sterowników i sterowników specycznych dla bazy danych w celu zapewnienia przejrzystej ª czno±ci z heterogenicznymi bazami danych. Mened»er sterowników JDBC zapewnia,»e do uzyskania dost pu do ka»dego ¹ródªa danych u»ywany jest prawidªowy sterownik. Driver manager jest w stanie obsªugiwa wiele równoczesnych sterowników podª czonych do wielu heterogenicznych baz danych. 5 / 51
6 Architektura JDBC 6 / 51
7 JDBC Driver Sterownik JDBC to skªadnik oprogramowania, który umo»liwia aplikacji Java do wspóªpracowa z baz danych. S cztery typy sterowników JDBC: Sterownik mostu JDBC-ODBC Sterownik Native-API (cz ±ciowo w Javie) Sterownik protokoªu sieciowego (w peªni w Javie) Cienki sterownik (w peªni w Javie) 7 / 51
8 JDBC-ODBC bridge driver Zalety ªatwy w u»yciu mo»na ªatwo poª czy z dowoln baz danych. Wady Wydajno± jest zmniejszona, poniewa» wywoªanie metody JDBC jest konwertowane na wywoªania funkcji ODBC. Sterownik ODBC musi by zainstalowany na komputerze klienckim. 8 / 51
9 Native-API driver Zalety Wydajno± wi ksza ni» za pomoc sterownika mostu JDBC-ODBC Wady Sterownik natywny musi by zainstalowany na ka»dym komputerze klienckim. Biblioteka dostawcy musi by zainstalowana na komputerze klienckim. 9 / 51
10 Network Protocol driver Zalety adna biblioteka strony klienta nie jest wymagana ze wzgl du na serwer aplikacji, który mo»e wykonywa wiele zada«, takich jak kontrola, równowa»enie obci»enia, logowanie itp. Wady Obsªuga sieci jest wymagana na komputerze klienckim. Wymaga oprogramowania specycznego dla konkretnej bazy danych, który ma by wykonany w warstwie ±rodkowym. Z tego powodu utrzymanie sterownika 10 / 51protokoªu sieciowego staje si kosztowne.
11 Thin driver Zalety Lepsza wydajno± ni» wszystkie inne sterowniki. adne oprogramowanie nie jest wymagane po stronie klienta lub po stronie serwera. Wady Sterowniki zale» od bazy danych. 11 / 51
12 Poª czenie z baz danych Aby u»ywa standardowego pakietu JDBC, który umo»liwia operacje SQL SELECT, INSERT, UPDATE i DELETE, nale»y doda nast puj cy import do kodu ¹ródªowego import java. sql.* ; // Dla standartowych programów JDBC import java. math.* ; // dla wsparcia typów BigDecimal i BigIntege Aby poª czy si z baza danych wystarczy 5 kroków Zarejestrowanie klasy sterownika Stworzenie poª czenia Stworzenie zapytana SQL Wykonanie kwerendy (opcjonalnie pobranie wyniku) Zamkni cie poª czenia 12 / 51
13 Zarejestrowanie klasy sterownika Trzeba zarejestrowa sterownik w programie przed jego u»yciem. Rejestracja sterownika jest procesem, w którym plik klasy sterownika (np. Oracle, MySQL) jest zaªadowany do pami ci, dzi ki czemu mo»e by wykorzystany jako implementacji interfejsów JDBC. Wystarczy zrobi rejestracj tylko raz w programie. Sterownik mo»na zarejestrowa na jeden z dwóch sposobów. Poprzez metod Class.forName() Poprzez metod DriverManager.registerDriver() 13 / 51
14 Rejestrowanie - Class.forName() Najcz stszym podej±ciem do zarejestrowania sterownika jest u»ycie metody Class.forName() do dynamicznego ªadowania pliku klasy sterownika do pami ci, co automatycznie rejestruje j. Metoda ta jest preferowana, poniewa» umo»liwia kongurowanie i przenoszenie sterowników. Przykªad: try { Class. forname (" oracle. jdbc. driver. OracleDriver " ); catch ( ClassNotFoundException ex ) { System. out. println (" Error : unable to load driver class!" ); System. exit (1); 14 / 51
15 Rejestrowanie - DriverManager.registerDriver() Drugim podej±ciem, którego mo»na u»y do zarejestrowania sterownika, jest u»ycie statycznej metody DriverManager.registerDriver (). Je±li u»ywamy JVM niezgodnego z JDK, nale»y u»y metody registerdriver(), takiej jak ta dostarczona przez rm Microsoft. Przykªad: try { Driver mydriver = new oracle. jdbc. driver. OracleDriver (); DriverManager. registerdriver ( mydriver ); catch ( ClassNotFoundException ex ) { System. out. println (" Error : unable to load driver class!" ); System. exit (1); 15 / 51
16 Tworzenia poª czenia z baz danych Po zaªadowaniu sterownika mo»na nawi za poª czenie przy u»yciu metody DriverManager.getConnection() Trzy przeci»one metody: getconnection(string url) getconnection(string url, Properties prop) getconnection(string url, String user, String password) Przykªad: Connection con = DriverManager. getconnection ( " jdbc : oracle : thin :1521: xe "," system "," password " ); 16 / 51
17 Popularne Connection String Typ Bazy danych DriverClassName Connection String MySQL com.mysql.jdbc.driver "jdbc:mysql://<hostname>:<portnumber>/<databasename>" PostgreSql org.postgresql.driver "jdbc:postgresql://<hostname>:<portnumber>/<databasename>" SQLServer com.microsoft.sqlserver.jdbc.sqlserverdriver "jdbc:sqlserver://<hostname>:<portnumber>;<databasename>" Oracle oracle.jdbc.driver.oracledriver DB2 COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver "jdbc:db2://<hostname>:<portnumber>/<databasename>" "DB2(on As/400)" com.ibm.as400.access.as400jdbcdriver "jdbc:as400://<hostname>:<portnumber>/<databasename>;" 17 / 51
18 Tworzenia i wykonywanie zapyta«do tworzenia zapyta«sql sªu»y metoda createstatement() interfejsu Connection. Obiekt klasy Statement jest odpowiedzialny za wykonywanie kwerend z baz danych. public Statement createstatement () throws SQLException Do wykonywania kwerend w bazie danych sªu»y metoda executequery () interfejsu Statement. Metoda zwraca obiekt ResultSet, który mo»e by u»yty do pobrania wszystkich rekordów tabeli. public ResultSet executequery ( String sql ) throws SQLException Przykªad: Statement stmt = con. createstatement (); ResultSet rs= stmt. executequery (" SELECT id_osoby, imie FROM osoby " ); while ( rs. next ()){ System. out. println ( rs. getint (1)+ " "+ rs. getstring (2)); 18 / 51
19 Przykªad - ile miast import java. sql.*; public class PokazWoj { public static void main ( String [] args ){ try { Class. forname (" com. mysql. jdbc. Driver " ); Connection con = DriverManager. getconnection ( " jdbc : mysql :// localhost / bazy_danych?" + " user = user & password = pass " ); Statement stmt = con. createstatement (); ResultSet rs= stmt. executequery ( " SELECT w. kod_woj, count ( id_miasta ) AS ile_miast " + " FROM woj w " + " LEFT JOIN miasta m ON m. kod_woj =w. kod_woj " + " GROUP BY w. kod_woj ;" ); while ( rs. next ()) System. out. println ( rs. getstring (1)+ " "+ rs. getint (2)); con. close (); catch ( Exception e ){ System. out. println (e ); 19 / 51
20 Interakcja z baz danych Po uzyskaniu poª czenia mo»emy wspóªdziaªa z baz danych. Interfejs JDBC Statement, CallableStatement i PreparedStatement deniuje metody i wªa±ciwo±ci umo»liwiaj ce wysyªanie polece«t-sql lub PL/SQL i odbieranie danych z bazy danych. Statement - U»ywane do ogólnego dost pu do bazy danych. Przydatne podczas korzystania ze statycznych instrukcji SQL w czasie wykonywania. Interfejs Statement nie mo»e akceptowa parametrów. PreparedStatement - do wielokrotnie wykorzystywanych instrukcji SQL. Interfejs PreparedStatement akceptuje parametry wej±ciowe w czasie wykonywania. CallableStatement - u»ywany, aby uzyska dost p do procedur przechowywanych w bazie danych. Interfejs CallableStatement mo»e równie» akceptowa parametry wej±ciowe w czasie wykonywania. 20 / 51
21 Obiekt klasy Statement Zanim b dzie mo»na u»y obiektu Statement do wykonania instrukcji SQL, nale»y go utworzy, korzystaj c z metody createstatement() obiektu Connection Metody boolean execute (String SQL) - SQL DDL int executeupdate (String SQL) - INSERT, UPDATE lub DELETE ResultSet executequery (String SQL) - SELECT 21 / 51
22 Obiekt klasy PreparedStatement Interfejs PreparedStatement rozszerza interfejs Statement, co zapewnia dodatkow funkcjonalno± z kilkoma zaletami w porównaniu ze zwykªym obiektem Statement. Wszystkie parametry w JDBC s reprezentowane przez symbol "?", znany jako marker parametrów. Trzeba poda warto±ci dla ka»dego parametru przed wykonaniem kwerendy SQL Metody setxxx () ª cz warto±ci z parametrami, gdzie XXX reprezentuje typ danych typu Java warto±ci, która ma zosta powi zana z parametrem wej±ciowym. Je±li zapomnisz dostarczy warto±ci, otrzymasz SQLException. Ka»dy znacznik parametrów jest okre±lany przez jego pozycj porz dkow. Pierwszy znacznik przedstawia pozycj 1, nast pn pozycj 2, i tak dalej. Ta metoda ró»ni si od indeksów tablic Java, która zaczynaj si od 0 Przykªad: PreparedStatement ps = con. preparestatement ( " SELECT * FROM osoby WHERE id_osoby =? " ); ps. setint (1, id_osoby ); 22 / 51
23 Obiekt klasy CallableStatement Istniej trzy typy parametrów: IN, OUT i INOUT. Obiekt PreparedStatement u»ywa tylko parametru IN. Obiekt CallableStatement mo»e u»ywa wszystkich trzech. Przed wykonaniem instrukcji nale»y powi za warto±ci z wszystkimi parametrami, je±li nie to otrzymamy SQLException. Je±li masz parametry IN, post puj zgodnie z tymi samymi zasadami i technikami, które dotycz obiektu PreparedStatement: u»yj metody setxxx (), która odpowiada typowi danych j zyka Java. Podczas korzystania z parametrów OUT i INOUT nale»y u»y dodatkowej metody interfejsu CallableStatement, registeroutparameter (). Metoda RegisterOutParameter () wi»e typ danych JDBC, z typem danych, od którego oczekiwana jest warto± zwracana procedury skªadowanej. Aby powi za typ OUT nalezy uzyc funckji setxxx() 23 / 51
24 Klasa ResultSet Obiekt ResultSet utrzymuje kursor wskazuj cy bie» cy wiersz w zestawie wynikowym. Termin "zestaw wyników" odnosi si do danych wierszy i kolumn zawartych w obiekcie ResultSet. S trzy typy metod interfejsu ResultSet metody do nawigowania metody Get - sªu» do odczytu danych metody Update - aktualizacja rekordów w bazie danych! JDBC udost pnia nast puj ce metody poª cze«do tworzenia kwerend z odpowiednim ResultSet createstatement(int RSType, int RSConcurrency) preparestatement(string SQL, int RSType, int RSConcurrency) preparecall(string sql, int RSType, int RSConcurrency) 24 / 51
25 Typy ResultSet Mo»liwe warto±ci RSType ResultSet.TYPE_FORWARD_ONLY - (domy±lna) Kursor mo»e porusza si tylko do przodu. ResultSet.TYPE_SCROLL_INSENSITIVE - Kursor mo»e przewija do przodu i do tyªu, a zestaw wyników nie jest wra»liwy na zmiany wprowadzone przez inne osoby do bazy danych, które wyst piªy po utworzeniu zestawu wyników. ResultSet.TYPE_SCROLL_SENSITIVE - Kursor mo»e przewija do przodu i do tyªu, a zestaw wyników jest wra»liwy na zmiany wprowadzone przez inne do bazy danych, które wyst piªy po utworzeniu zestawu wyników. Mo»liwe warto±ci RSConcurrency ResultSet.CONCUR_READ_ONLY - (domy±lna) zbiór wynikowy jest tylko do odczytu ResultSet.CONCUR_UPDATABLE - zbiór wynikowy mo»na zmienia i aktualizacje nanosi do bazy danych! 25 / 51
26 Metody aktualizacji ResultSet public void updatexxx(int columnindex, XXX s) - Ustawia warto± kolumny dla danego wiersza, na który wskazuje kursor public void updatexxx(string columnname, XXX s) - Ustawia warto± kolumny dla danego wiersza, na który wskazuje kursor public void updaterow() - Aktualizuje bie» cy wiersz, aktualizuj c odpowiedni wiersz w bazie danych. public void deleterow() - Usuwa bie» cy wiersz z bazy danych public void refreshrow() - Od±wie»a dane w zestawie wyników w celu odzwierciedlenia ostatnich zmian w bazie danych. public void cancelrowupdates() - Anuluje wszystkie aktualizacje wprowadzone w bie» cym wierszu. public void insertrow() - Wstawia wiersz do bazy danych. Ta metoda mo»e by wywoªana tylko wtedy, gdy kursor wskazuje na wiersz do wstawiania. 26 / 51
27 Przykªad - ResultSet wstawianie (1/2) import java. sql.*; public class Rsmd { public static void main ( String args []){ try { Class. forname (" com. mysql. jdbc. Driver " ); Connection con = DriverManager. getconnection ( " jdbc : mysql :// localhost / bazy_danych?" + " user = user & password = pass " ); Statement stmt = con. createstatement ( ResultSet. TYPE_SCROLL_INSENSITIVE, ResultSet. CONCUR_UPDATABLE ); String sql_query =" SELECT * FROM osoby "; ResultSet rs= stmt. executequery ( sql_query ); printrs ( rs ); rs. movetoinsertrow (); // przestawienie kursora rs. updateint (" id_osoby ",10); rs. updateint (" id_miasta ",4); rs. updatestring (" imie "," Jan " ); rs. updatestring (" nazwisko "," Kowalski " ); rs. insertrow (); // wstawienie wiersza do bazy danych printrs ( rs ); 27 / 51 con. close ();
28 Przykªad - ResultSet wstawianie (2/2) public class Rsmd {... private static void printrs ( ResultSet rs ) throws SQLException { rs. beforefirst (); while ( rs. next ()){ int id_osoby = rs. getint (" id_osoby " ); int id_miasta = rs. getint (" id_miasta " ); String imie = rs. getstring (" imie " ); String nazwisko = rs. getstring (" nazwisko " ); System. out. print ( id_osoby + "\t" + id_miasta +"\t" + imie + "\t"+ nazwisko ); System. out. println (); System. out. println (); 28 / 51
29 Przykªad - ResultSet wstawianie (wydruk) 1 1 Maciej Stodolski 2 2 Jacek Korytkowski 3 3 Mis Nieznany 4 4 Krol Neptun 5 2 Juz Niepracujacy 1 1 Maciej Stodolski 2 2 Jacek Korytkowski 3 3 Mis Nieznany 4 4 Krol Neptun 5 2 Juz Niepracujacy 10 4 Jan Kowalski 29 / 51
30 Metadane JDBC Interfejs ResultSetMetaData public int getcolumncount() public String getcolumnname(int index) public String getcolumntypename(int index) public String gettablename(int index) Interfejs DatabaseMetaData public String getdrivername() public String getdriverversion() public String getusername() public String getdatabaseproductname() public ResultSet gettables(string catalog, String schemapattern, String tablenamepattern, String[] types) 30 / 51
31 Przykªad - ResultSetMetaData import java. sql.*; public class Rsmd { public static void main ( String args []){ try { Class. forname (" com. mysql. jdbc. Driver " ); Connection con = DriverManager. getconnection ( " jdbc : mysql :// localhost / bazy_danych?" + " user = user & password = pass " ); PreparedStatement ps= con. preparestatement ( " SELECT imie, nazwisko FROM osoby " ); ResultSet rs=ps. executequery (); ResultSetMetaData rsmd =rs. getmetadata (); System. out. println (" Ilosc kolumn : "+ rsmd. getcolumncount ()); System. out. println (" Nazwa pierwszej kolumny : " + rsmd. getcolumnname (1)); System. out. println (" Typ pierwszej kolumny : " + rsmd. getcolumntypename (1)); System. out. println (" Mapowanie typu pierwszej kolumny : " + rsmd. getcolumnclassname (1)); con. close (); catch ( Exception e ){ System. out. println (e ); 31 / 51
32 Przykªad - ResultSetMetaData (wydruk) Ilosc kolumn : 2 Nazwa pierwszej kolumny : imie Typ pierwszej kolumny : VARCHAR Mapowanie typu pierwszej kolumny : java. lang. String 32 / 51
33 Przykªad - DatabaseMetaData import java. sql.*; public class Dbmd { public static void main ( String args []){ try { Class. forname (" com. mysql. jdbc. Driver " ); Connection con = DriverManager. getconnection ( " jdbc : mysql :// localhost / bazy_danych?" + " user = user & password = pass " ); DatabaseMetaData dbmd = con. getmetadata (); System. out. println (" Driver Name : "+ dbmd. getdrivername ()); System. out. println (" Driver Version : "+ dbmd. getdriverversion ()); System. out. println (" UserName : "+ dbmd. getusername ()); System. out. println (" Database Product Name : " + dbmd. getdatabaseproductname ()); System. out. println (" Database Product Version : " + dbmd. getdatabaseproductversion ()); con. close (); catch ( Exception e ){ System. out. println (e ); 33 / 51
34 Przykªad - DatabaseMetaData (wydruk) Driver Name : MySQL - AB JDBC Driver Driver Version : mysql - connector - java ( $Date : :01: ( Thu, 01 Mar 2007) $, $Revision : 6329 $ ) UserName : user@localhost Database Product Name : MySQL Database Product Version : log 34 / 51
35 Java Native Interface JNI jest mechanizmem, który pozwala programowi Java na wywoªanie funkcji w programie C lub C ++. programowi C lub C ++ na wywoªania metody w programie Java Powody u»ywania metod natywnych Uzyskanie dost pu do funkcji systemu, które mo»na ªatwiej obsªugiwa w j zyku C lub C ++. Potrzebny dost p do starszego kodu, który zostaª dobrze przetestowany. Potrzebujesz wydajno±ci oferowanej przez C a której Java (jeszcze) nie ma NAJWA NIEJSZE: kod natywny nie jest przeno±ny! 35 / 51
36 Jak napisa aplikacj JNI? Kod Java Zadeklaruj metod u»ywaj c modykatora native, która nie ma ciaªa private native void sayhello() Upewnij si,»e biblioteka wspóªdzielona, która ma zosta utworzona pó¹niej, jest ªadowana przed wywoªaniem metody natywnej System.loadLibrary("hello"); Zwykle biblioteka jest ªadowana w bloku statycznym w klasie, która wywoªuje metod natywn. Skompiluj klas javac HelloJNI.java Stwórz nagªówek C zawieraj cy prototypy funkcji dla natywnych metod javah HelloJNI Napisz implementacj C natywnych metod wykorzystuj cych znieksztaªcone nazwy i dodatkowe parametry. Skompiluj kod C i utwórz bibliotek wspóªdzielon gcc -Wl,--add-stdcall-alias -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" -shared -o hello.dll HelloJNI.c 36 / 51
37 Przykªad - HelloJNI.java public class HelloJNI { static { System. loadlibrary (" hello " ); private native void sayhello (); public static void main ( String [] args ) { new HelloJNI (). sayhello (); 37 / 51
38 Przykªad - HelloJNI.h wygenerowany /* DO NOT EDIT THIS FILE - it is machine generated */ # include <jni.h> /* Header for class HelloJNI */ # ifndef _Included_HelloJNI # define _Included_HelloJNI # ifdef cplusplus extern "C" { # endif /* * Class : HelloJNI * Method : sayhello * Signature : () V */ JNIEXPORT void JNICALL Java_HelloJNI_sayHello ( JNIEnv *, jobject ); # ifdef cplusplus # endif # endif 38 / 51
39 Przykªad - HelloJNI.c implementacja # include <jni.h> # include <stdio.h> # include " HelloJNI.h" JNIEXPORT void JNICALL Java_HelloJNI_sayHello ( JNIEnv * env, jobject thisobj ) { printf (" Hello World!\ n" ); return ; 39 / 51
40 Typy w JNI JNI deniuje wiele typów JNI w systemie natywnym, które odpowiadaj typom Java Prymitywy jint, jbyte, jshort, jlong, joat, jdouble, jchar, jboolean odpowiadaj typom int, byte, short, long, oat, double, char i boolean Typy referencji jobject dla java.lang.object jclass dla java.lang.class. jstring dla java.lang.string. jthrowable dla java.lang.throwable. jarray dla tablic Java. Jest 8 tablic z typami prymitywnymi i 1 dla obiektów: intarray, jbytearray, jshortarray, jlongarray, joatarray, jdoublearray, jchararray, jbooleanarray i jobjectarray Funkcje natywne odbieraj argumenty w powy»szych typach JNI i zwracaj warto± typu JNI 40 / 51
41 Programy natywne Programy natywne musza dokonywa konwersji z typów JNI na swój wªasny i podobnie zwracaj c wynik Typowe dziaªanie funkcji natywnej Odbierz argumenty w typie JNI (przekazany przez program Java). Aby uzyska odniesienie do typu JNI, przekonwertuj lub skopiuj argumenty do lokalnych typów macierzystych, np. Jstring do ªa«cucha znaków C, jintarray do int[], itd. Prymitywne typy JNI takie jak jint i jdouble nie wymagaj konwersji i mog by obsªugiwane bezpo±rednio. Wykonaj operacje u»ywaj c lokalnych typów. Utwórz zwracany obiekt w typie JNI i skopiuj wynik do zwracanego obiektu. Powrót z funkcji. Najbardziej myl ce i wymagaj ce zadanie w programowaniu JNI polega na konwersji (lub przeksztaªceniu) pomi dzy typami odniesienia JNI (np. jstring, jobject, jintarray, jobjectarray) i typami natywnymi (C-string, int []). Interfejs JNI zapewnia jednak wiele funkcji do konwersji. 41 / 51
42 Przykªad - TestJNIPrimitive.java public class TestJNIPrimitive { static { System. loadlibrary (" TestJNI " ); private native double average ( int n1, int n2 ); public static void main ( String args []) { System. out. println ("W Javie, ±rednia = " + new TestJNIPrimitive (). average (3, 2)); 42 / 51
43 Przykªad - TestJNIPrimitive.h wygenerowany /* DO NOT EDIT THIS FILE - it is machine generated */ # include <jni.h> /* Header for class TestJNIPrimitive */ # ifndef _Included_TestJNIPrimitive # define _Included_TestJNIPrimitive # ifdef cplusplus extern "C" { # endif /* * Class : TestJNIPrimitive * Method : average * Signature : ( II ) D */ JNIEXPORT jdouble JNICALL Java_TestJNIPrimitive_average ( JNIEnv *, jobject, jint, jint ); # ifdef cplusplus # endif # endif 43 / 51
44 Przykªad - TestJNIPrimitive.c implementacja # include <jni.h> # include <stdio.h> # include " TestJNIPrimitive. h" JNIEXPORT jdouble JNICALL Java_TestJNIPrimitive_average ( JNIEnv * env, jobject thisobj, jint n1, jint n2 ) { jdouble result ; printf ("W C, liczby to %d i %d\n", n1, n2 ); result = (( jdouble ) n1 + n2 ) / 2.0; return result ; gcc -Wl,-- add - stdcall - alias -I"% JAVA_HOME %\ include " -I"% JAVA_HOME %\ include \ win32 " - shared -o TestJNI. dll TestJNIPrimiti 44 / 51
45 Przekazywanie typów zªo»onych (1/2) JNI zdeniowaª typ jstring do reprezentowania obiektu Java String. Ostatni argument (typu JNI typu jstring) to ci g znaków Java przekazany do programu C. Typ zwrotny jest równie» jstring. Przekazywanie obiektu String jest trudniejsze, bo ci g znaków w C jest reprezentowany przez tablic char* rodowisko JNI (dost pne za po±rednictwem argumentu JNIEnv *) udost pnia funkcje konwersji: const char* GetStringUTFChars(JNIEnv*, jstring, jboolean*) jstring NewStringUTF(JNIEnv*, char*) 45 / 51
46 Przekazywanie typów zªo»onych (2/2) Podobne funkcje istniej dla konwertowania tablic jint* GetIntArrayElements(JNIEnv *env, jintarray a, jboolean *iscopy) jsize GetArrayLength(JNIEnv *env, jintarray a) jintarray NewIntArray(JNIEnv *env, jsize len) SetIntArrayRegion(JNIEnv *env, jintarray a, jsize start, jsize len, const jint *buf) 46 / 51
47 Przykªad - TestJNIPrimitiveArray.java public class TestJNIPrimitiveArray { static { System. loadlibrary (" TestJNIa " ); private native double [] sumandaverage ( int [] numbers ); public static void main ( String args []) { int [] numbers = {22, 33, 33; double [] results = new TestJNIPrimitiveArray (). sumandaverage ( numb System. out. println ("W Java, suma = " + results [0]); System. out. println ("W Java, srednia = " + results [1]); 47 / 51
48 Przykªad - TestJNIPrimitiveArray.h wygenerowany /* DO NOT EDIT THIS FILE - it is machine generated */ # include <jni.h> /* Header for class TestJNIPrimitiveArray */ # ifndef _Included_TestJNIPrimitiveArray # define _Included_TestJNIPrimitiveArray # ifdef cplusplus extern "C" { # endif /* * Class : TestJNIPrimitiveArray * Method : sumandaverage * Signature : ([ I )[ D */ JNIEXPORT jdoublearray JNICALL Java_TestJNIPrimitiveArray_sumAndAverage ( JNIEnv *, jobject, jintarray ); # ifdef cplusplus # endif 48 / 51 # endif
49 Przykªad - TestJNIPrimitiveArray.c implementacja (1/2) # include <jni.h> # include <stdio.h> # include " TestJNIPrimitiveArray. h" JNIEXPORT jdoublearray JNICALL Java_TestJNIPrimitiveArray_sumAndAverage ( JNIEnv * env, jobject thisobj, jintarray injniarray ) { jint * incarray = (* env )-> GetIntArrayElements ( env, injniarray, NULL ); if ( NULL == incarray ) return NULL ; jsize length = (* env )- > GetArrayLength ( env, injniarray ); jint sum = 0; int i; for ( i = 0; i < length ; i ++) { sum += incarray [ i ]; jdouble average = ( jdouble ) sum / length ; (* env )- > ReleaseIntArrayElements ( env, injniarray, incarray, 0); 49 / 51...
50 Przykªad - TestJNIPrimitiveArray.c implementacja (1/2) JNIEXPORT jdoublearray JNICALL Java_TestJNIPrimitiveArray_sumAndAverage ( JNIEnv * env, jobject thisobj, jintarray injniarray ) {... jdouble outcarray [] = { sum, average ; jdoublearray outjniarray = (* env )- > NewDoubleArray ( env, 2); if ( NULL == outjniarray ) return NULL ; (* env )- > SetDoubleArrayRegion ( env, outjniarray, 0, 2, outcarray ); return outjniarray ; 50 / 51
51 51 / 51 Pytania?
JAVA NATIVE INTERFACE
JAVA NATIVE INTERFACE ZAGADNIENIA: wprowadzenie przykład HelloWorld podstawy JNI (przekazywanie zmiennych, stringów, obiektów) MATERIAŁY: http://docs.oracle.com/javase/7/docs/technotes/guides/jni/ http://www3.ntu.edu.sg/home/ehchua/programming/java/javanativeinterface.html
Metody dostępu do danych
Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Metody dostępu do danych JDBC - Java Database Connectivity JDO - Java Data Object ORM - Object-Relational
Bazy danych wykład dwunasty
Bazy danych wykład dwunasty Interfejs do połaczeń z baza danych Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa danych 1 / 29 Zajmiemy się mechanizmami pozwalajacymi połaczyć się
JDBC (Java Database Connectivity vit )
1 JDBC (Java Database Connectivity) Marek Wojciechowski Czym jest JDBC? 2 JDBC jest standardowym interfejsem do współpracy aplikacji Java z relacyjną bazą danych JDBC definiuje standardowe interfejsy interfejsy
Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java
Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny
Połączenie z bazą danych
Połączenie z bazą danych ODBC i JDBC - przykłady w języku Java Standard ODBC Stworzony przez Microsoft Dostępny w Windows (są także bibliotek Linux'owe) Pozwala na dostęp do źródeł danych Programowanie
Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.
Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity
JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński
JAVA bazy danych na bazie: Język Java - Podstawy Programowania - Jacek Rumiński Plan wykładu Sposoby połączenia z bazą danych Sterowniki JDBC Połączenie z bazą danych poprzez JDBC Język SQL (Structured
JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html
JAVA I BAZY DANYCH ZAGADNIENIA: wprowadzenie; JDBC; komunikacja z bazą danych; HSQLDB. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK
Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access)
Programowanie komputerów Wykład 10: Dostęp do baz danych z poziomu aplikacji Java (JDBC Database Access) Relacyjne bazy danych Baza danych to zbiór danych powiązanych ze sobą pewnymi relacjami. System
JDBC - Obsługa baz danych w języku Java
JDBC - Obsługa baz danych w języku Java JDBC (Java Database Conectiviti) jest interfejsem pozwalającym połączyć aplikację Javy z zewnętrzną bazą danych za pomocą odpowiednich sterowników. Dużą zaletą JDBC
Łączenie z bazą danych przykładowa klasa infpolaczenie import java.sql.drivermanager; import java.sql.connection; import java.sql.
Łączenie z bazą danych przykładowa klasa infpolaczenie import java.sql.drivermanager; import java.sql.connection; import java.sql.sqlexception; public class infpolaczenie { public static void main(string[]
Connection con = DriverManager.getConnection(dbUrl, username, passwd);
Laboratorium 8 Wstęp Dostęp do bazy danych: 1. Załadowanie sterownika (drivera) do pamięci np. Class.forName("org.apache.derby.jdbc.ClientDriver"); 2. Podłączenie się do bazy (klasa Connection) Connection
Rozdział 9 Obsługa baz danych w języku Java
Rozdział 9 Obsługa baz danych w języku Java 9.1 Obsługa baz danych w Javie - pakiet SQL 9.2 Utworzenie połączenia z bazą danych 9.3 Sterowniki 9.4 Wysłanie polecenia SQL 9.5 Rezultaty i ich przetwarzanie
Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski
Aplikacje bazodanowe dr inż. Arkadiusz Mirakowski Plan prezentacji interfejs ODBC interfejs JDBC rodzaje sterowników JDBC niezbędne biblioteki interfejsu JDBC instalacja i konfiguracja sterownika JDBC
1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.
1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja
Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów
Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 16.03.2017 Interfejsy raz jeszcze "Interfejsy
Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych
Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych Zadanie do wykonania na następny tydzień: Przedstawić aplikację napisaną w JSP realizującą analogiczne zadania jak pierwsza aplikacja
Programowanie w języku Java. Bazy danych SQLite w Javie
Programowanie w języku Java Bazy danych SQLite w Javie Co to jest SQLite SQLite to bezserwerowa, nie wymagająca konfiguracji relacyjna baza danych. Znajduje szerokie zastosowanie np.. w systemie android
Podstawy otwartych języków programowania Java Database Connectivity (JDBC)
Podstawy otwartych języków programowania Java Database Connectivity (JDBC) Wiktor Wandachowicz Treść wykładu Przypomnienie terminów bazodanowych Architektura JDBC Schemat działania przy dostępie do danych
Wzorce projektowe strukturalne cz. 1
Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter
Plan wykładu. Dostęp do bazy danych. Architektura JDBC. Dostęp do baz danych z aplikacji Java EE
1 Plan wykładu 2 Dostęp do bazy danych Dostęp do baz danych w aplikacjach Java EE JDBC Źródła danych część I: JDBC i źródła danych Dostęp do baz danych z aplikacji Java EE Architektura JDBC Programowane
Typy sterowników. Rozdział 21 JDBC. Podstawowe kroki aplikacji. Historia. Program napisany w języku Java JDBC API. Menadżer sterowników JDBC
Typy sterowników Program napisany w języku Java Rozdział JDBC JDBC API Menadżer sterowników JDBC Typ Typ Typ Typ Wprowadzanie do JDBC, kursory zwykłe, kursory przewijane, obsługa błędów, przetwarzanie
Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37
Aplikacje bazodanowe Laboratorium 1 Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, 2017 1 / 37 Plan 1 Informacje wst pne 2 Przygotowanie ±rodowiska do pracy 3 Poj cie bazy danych 4 Relacyjne
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych http://www.mini.pw.edu.pl/~lucknerm Utworzenie tabeli w Oracle Utworzenie użytkownika Utworzenie połączenia w NetBeans Utworzenie
Java Database Connectivity
Java Database Connectivity Celem ćwiczenia jest zbudowanie kilku prostych serwletów z użyciem technologii JDBC. Podczas ćwiczenia zbudowane zostaną serwlety ilustrujące podstawowe techniki łączenia się
Wprowadzenie do JDBC z wykorzystaniem bazy H2
Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za
Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.
Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.
Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK
Dostęp do baz danych z serwisu www - PHP Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Bazy Danych I, 8 Grudzień 2009 Plan Trochę teorii Uwagi techniczne Ćwiczenia Pytania Trójwarstwowy
JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008
JDBC w LoXiMie Interfejs Java Database Connectivity dla systemu LoXiM Adam Michalik 2008 Sterownik JDBC co to jest? Sterownik JDBC to zbiór klas implementujących interfejsy opisane w specyfikacji JDBC
JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium
Bazy Danych JDBC Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia Wprowadzenie do laboratorium. Nawiązywanie i zamykanie połączeń. Wykonywanie zapytań. Wykonywanie aktualizacji. Zarządzanie
Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak
Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania:
Java a dost p do Internetu.
Java a dost p do Internetu. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 20.04.2017 Java a dost p do Internetu Java Networking - jest koncepcj
Dlaczego JDBC jest lepszy ni ODBC? Zgodno ze standardami SQL. Sterowniki.
Wraz z powstaniem nowego, przeno nego, niezale nego od platformy i architektury j zyka programowania pojawiła si idea skonstruowania nowego interfejsu bazodanowego, który spełniałby podobne wymagania jak
DB+frontend Inne języki H2. Bazy Danych i Systemy informacyjne Wykład 9. Piotr Syga
Bazy Danych i Systemy informacyjne Wykład 9 Piotr Syga 30.11.2018 API Przykłady API ODBC JDBC OLEDB ADO.NET data provider API Funkcjonalności Komponenty Główne komponenty odpowiadające za komunikację API/data
Aplikacje Internetowe
Aplikacje Internetowe Łączenie z bazą danych Podstawy Klient Serwer Sterownik Własne API (Application Programmer Interface) Łączenie z bazą danych Sterownik Protokół komunikacyjny Adres serwera Port nasłuchowy
1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Programowanie i struktury danych
Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w
Bazy danych, 4. wiczenia
Bazy danych, 4. wiczenia 2007-10-23 1 Plan zaj PL/SQL, cz ± II: tabele kursory sªu» ce do zmiany danych, procedury, funkcje, pakiety, wyzwalacze. 2 Tabele Deklaracja TYPE t_tab IS TABLE OF VARCHAR(20)
Kurs programowania aplikacji bazodanowych
Wykład 1 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Architektury aplikacji Architektura aplikacji Jednowarstwowa Dwuwarstowa Rozproszona (JDBC) Wprowadzenie Architektura JDBC Sterowniki,
Programowanie w języku Java
Programowanie w języku Java Wykład 4: Programowanie rozproszone: TCP/IP, URL. Programowanie sieciowe w Javie proste programowanie sieciowe (java.net) na poziomie UDP na poziomie IP na poziomie URL JDBC
1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski
Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 11 Zastosowanie PHP do programowania aplikacji baz danych Oracle Wsparcie programowania w PHP baz danych Oracle Oprócz możliwego
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Java Database Connectivity
1 Java Database Connectivity Java Database Connectivity (JDBC) to specyfikacja określająca zbiór klas i interfejsów napisanych w Javie, które mogą być wykorzystane przez programistów tworzących oprogramowanie
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Wzorce projektowe kreacyjne
Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie
Podejście obiektowe do relacyjnych baz danych Hibernate.
Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady
PL/SQL. Zaawansowane tematy PL/SQL
PL/SQL Zaawansowane tematy PL/SQL Cele Przypomnienie kursorów Przypomnienie procedur i funkcji składowanych Poznanie pakietów składowanych 2 Bazę danych Oracle możemy traktować jakby była złożona z dwóch
1 Strumienie. 2 Pliki. 2.1 Zapis do pliku tekstowego. Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski
Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski 1 Strumienie W j zyku C++ pliki obsªugiwane s za pomoc strumieni. Strumie«pozwala na sekwencyjny dost p do pliku. Elementy, które jako pierwsze
Ćwiczenie 10 JDBC. Wywoływanie poleceń SQL z języków programowania. Ćwiczenie 10 JDBC. Wymagania: Bazy Danych
Bazy Danych Ćwiczenie 10 JDBC Wywoływanie poleceń SQL z języków programowania. Ćwiczenie 10 JDBC Na dotychczasowych ćwiczeniach wykorzystywaliście państwo program pozwalający na bezpośrednie wydawanie
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS
Platformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Protokół JDBC współpraca z relacyjnymi bazami danych lab3
Protokół JDBC współpraca z relacyjnymi bazami danych lab3 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych JPA, lab3 Zofia Kruczkiewicz 1 Zadanie1 Połączenie z bazą danych Sample systemu
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1
Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,
Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie
Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
InsERT GT Własne COM 1.0
InsERT GT Własne COM 1.0 Autor: Jarosław Kolasa, InsERT Wstęp... 2 Dołączanie zestawień własnych do systemu InsERT GT... 2 Sposób współpracy rozszerzeń z systemem InsERT GT... 2 Rozszerzenia standardowe
Wzorce logiki dziedziny
Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),
przygotował: Pawel@Kasprowski.pl Bazy danych Paweł Kasprowski pawel@kasprowski.pl Wersja 2006Z
Bazy danych Paweł Kasprowski pawel@kasprowski.pl Łączenie z bazą danych Sterownik Protokół komunikacyjny Adres serwera Port nasłuchowy Przesłanie zapytania SQL Odebranie rezultatów Pierwszy przykład JDBC
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Podstawy programowania III WYKŁAD 2
Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące
Systemy Rozproszone - Ćwiczenie 6
Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL
Informator Techniczny nr 68 19-01-2004 INFORMATOR TECHNICZNY WONDERWARE Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL W celu podłączenie komputera klienckiego do serwera IndustrialSQL,
Kurs programowania aplikacji bazodanowych
Wykład 2 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Połączenie za pomocą JNDI i DataSource Połączenie za pomocą JNDI i DataSource Krótki wstęp do usług katalogowych Dotychczas w celu uzyskania
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie
Sieciowa komunikacja procesów - XDR i RPC
*** abc.x Przyklad pliku RPCGEN Obliczanie sumy, roznicy i iloczynu dwoch liczb calkowitych *** ************************************ Wywolanie procedury odleglej dopuszcza tylko jeden argument wywolania
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Kurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk
Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych Andrzej Bąk Wstęp Zarys Co to jest baza danych? Podstawy teorii baz danych Klasyfikacja baz danych Organizacja danych w relacyjnej
Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015
Android Podstawy tworzenia aplikacji Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 4, 2015 Table of contents Framework Jednym z najwarto±ciowszych
Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 1 1 Język JAVA podstawy Język Java to jeden z najbardziej popularnych obiektowych języków programowania. Należy do grupy języków programowania bazujących na C i C++.
Podstawowe części projektu w Javie
Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych
Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych
Protokół JDBC współpraca z relacyjnymi bazami danych lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia
PL/SQL. Zaawansowane tematy PL/SQL
PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD
System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy
Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera
Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.
Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie
Programowanie w języku Java WYKŁAD
Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 14.04.2014 WYKŁAD 8 Trwałość w Java cz. 1 Wykład
Kolekcje obiektów. Wyj tki.
Kolekcje obiektów. Wyj tki. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 30.03.2017 Kolekcje obiektów Kolekcje obiektów (Java Collections) sªu»
Oprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 8.1, opracowanie materiału: Piotr Nierebiński, Mateusz Turski (na podstawie materiału oryginalnego
Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji
O autorze Wprowadzenie Rozdział 1. Relacyjne bazy danych i SQL Język i logika Definicja SQL Microsoft SQL Server, Oracle i MySQL Inne bazy danych Relacyjne bazy danych Klucze główne i obce Typy danych
Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o
Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa
Aplikacje RMI Lab4
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych
1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)
Instrukcja tworzenia aplikacji EE na podstawie aplikacji z dostępem do bazy danych, prezentowanej na zajęciach lab.5 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie
Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.
Zaawansowane aplikacje internetowe - laboratorium Architektura Spring. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej architekturę Spring. Aplikacja składa się z jednego
Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Podejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm
Listy i operacje pytania
Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik
Technologia Programowania 2016/2017 Wykªad 12
Technologia Programowania 2016/2017 Wykªad 12 JDBC + Jakub Lemiesz Stawiamy serwer bazy danych: Derby To, o czym b dziemy mówi, dotyczy praktycznie wszystkich systemów bazodanowych (MySql, SQL Server)