Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałSzczepan Kozieł Został zmieniony 9 lat temu
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 <% for ( int i = 0; i < 5; i++ ) { %> 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 <% out.println(„ Driver Name: "+ dm.getDriverName()); out.println("\tDriver Version: "+ dm.getDriverVersion ()); out.print("\tDatabase Name: "+ dm.getDatabaseProductName()); out.print("Avalilable DataBases: "); rs = dm.getCatalogs(); while(rs.next()){ out.print("-- "+ rs.getString(1)); } %>
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 <% Connection conn = null; String url = "jdbc:microsoft:sqlserver://"; String serverName= "localhost"; String portNumber = "1433"; String databaseName= "II"; String userName = "sa"; String password = ""; String connectionUrl = url+serverName+":"+portNumber+";databaseName="+databaseName+";"; Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); java.sql.DatabaseMetaData dm = null; java.sql.ResultSet rs = null; try{ conn = java.sql.DriverManager.getConnection(connectionUrl,userName,password); if(conn!=null){ Statement stmt = conn.createStatement(); ResultSet r = stmt.executeQuery("select*from student");
12
%> Indeks Nazwisko Adres <% while(r.next()){ %> <% } %> <% }else System.out.println("Error: No active Connection"); }catch(Exception e){ e.printStackTrace(); } dm=null; if(conn!=null) conn.close(); %>
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);
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.