Połączenie JSP z MS SQL Server 2000 Łukasz Sak Tomasz Raciborski.

1 Połączenie JSP z MS SQL Server 2000 Łukasz Sak Tomasz R...
Author: Szczepan Kozieł
0 downloads 2 Views

1 Połączenie JSP z MS SQL Server 2000 Łukasz Sak Tomasz Raciborski

2 Narzędzia: Blazix, serwer WWW obslugujący JSP, servlety, napisany w Javie, wybrany zamiast np. serwera Suna z powodu prostoty obsługi i konfiguracji oraz małej ilości pamięci potrzebnej do instalacji (1.5 MB), wymaga osobno zainstalowanego kompilatora Javy Sterownik Microsoft SQL Server 2000 Driver for JDBC, do ściągnięcia ze stron Microsoftu (2 MB)

3 JSP JavaServerPages to technologia bazująca na języku Java umożliwiająca szybkie i łatwe tworzenie dynamicznych stron WWW. Pliki JSP są plikami HTML wraz z kodem źródłowym Javy zawartym w specjalnych znacznikach. Dość istotnym jest fakt, iż kod plików JSP nie jest czytany linia po linii (jak ma to miejsce w PHP) lecz najpierw konwertowany do postaci serwletu (postać binarna) i następnie uruchamiany przez silnik serwletów.

4 Działanie JSP plik *.jsp jest parsowany i tworzony jest plik źródłowy z kodem Javy (tylko przy pierwszym wywołaniu pliku) plik z kodem Javy zostaje skompilowany do postaci binarnej pliku klasy. Powstały w ten sposób plik klasy jest serwletem, a więc jego obsługę przejmuje silnik serwletów Silnik serwletów ładuje i uruchamia serwlet, wyniki przesyła do przeglądarki

5 Prosty przykład pliku.jsp Liczba

6 Sterownik JDBC Najpierw należy załadować sterownik bazy danych. Chcąc połączyć się z MS SQL Server ściągamy ze stron Microsoftu Microsoft SQL Server 2000 Driver for JDBC, instalujemy go i do zmiennej systemowej classpath dodajemy ścięzki do konkretnych sterowników (msbase.jar, mssqlserver.jar, msutil.jar)

7 Połączenie z BD //ładowanie sterownika Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver„ ); //parametrem getConnection() są typ protokołu, mechanizm połączenia //z BD, lokalizacja BD i ewentualnie dodatkowe parametry Connection conn = java.sql.DriverManager.getConnection( „jdbc:microsoft:sqlserver://localhost:1433”); //Poniższy interfejs zawiera info o BD i sterowniku DatabaseMetaData dm = conn.getMetaData();

8 Meta-dane połączenia

9 Zapytania Dla wykonania zapytania SQL należy utworzyć obiekt typu Statement (lub PreparedStatement, CallableStatement ): Statement stmt = connect.createStatement(); Polecenie SQL możemy wysłać korzystając z metod klasy Statement: executeUpdate(), executeQuery(), execute(). ResultSet r = stmt.executeQuery(„select*from student”);

10 ResultSet W obiekcie klasy ResultSet przechowujemy rekordy (krotki) zwrócone z BD po wykonaniu executeQuery(). Do nawigacji służą metody: next(), getXXX(), findColumn(), isLast(), … while(r.next()){ id = r.getString(1); nazwisko = r.getString(2); out.println( id+„ „+ nazwisko); }

11 Strona.jsp listująca studentów z bazy

12 %> Indeks Nazwisko Adres

13 PreparedStatement, ResultSetMetaData PreparedStatement pstmt = conn.prepareStatement("select * from student where nazwisko = ?"); pstmt.setString(1, „Abacki"); ResultSet r = pstmt.executeQuery(); ResultSetMetaData rsmd = r.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); boolean b = rsmd.isSearchable(1); String name = rsmd.getColumnLabel(1);