piątek, lipca 13, 2007

Piątek ... początek
  • Wzorce korzystania z JDBC - mimo pojawienia się wielu technologii przeźroczystego dostępu do baz danych (tzw. data persistance: jak entity beans, JDO, Hibernate) nadal ze względów praktycznych króluje JDBC. Wskazówki:
    • korzystanie z puli połączeń (ustanowienie połączenia z bazą kosztuje od 30 do 1000ms). Prawie wszystkie kontenery servletowe i EJB korzystają z tej techniki. Poza ramami J2EE można skorzystać z projktów open-source np. Commons-DBCP
    • zamykać należy połączenie - close() zwykle zwraca połączenie do puli a nie odłącza sie od bazy, powoduje to "wyciek" pamięci. Ułatwić to może projekt CementJ
    • celowość stosowania procedur wbudowanych (przenaszalność kontra wydajność) tu należy stosować kryterium "ile będzie mniej transmisji sieciowych poprzez zastosowanie sp". Przetwarzanie logiki biznesowej (obciążającej CPU) w sp nie jest wskazane.
    • podejście do generowanych automatyczne przez motor bazy kluczy - znajomość klucza nowego (po Insert) rekordu jest ważna np. do wpisania go do rekordów podrzędnych. Specyfikacja JDBC 3.0 wymaga od sterownika żeby zwrócił ten klucz - getGeneratedKeys().
    • oddzielenie kodu JDBC od logiki biznesowej - należy kod JDBC zebrać w oddzielną klasę po to aby odseparować ten kod na wypadek konieczności dokonania zmiany oraz ułatwić współdzielenie kodu .
    • korzystanie z "query fetch size" przy przeglądaniu dużych wyników zapytań. Zwykle ustala się go (pole fetchSize) na poziomie 100. Ma znaczenie przy wolnych połączeniach sieciowych (pobiera rzadziej dane)
    • stosuj przetwarzanie wsadowe - grupowanie instrukcji SQL do wykonania jako jeden ciąg
    • nowości w JDBC 3.0 - wsparcie dla RowSet (dla wsparcia JavaBeans): może być connected lub disconnected oraz możliwość serializacji do XML.
  • Lista zaleceń wydajnościowych JDBC - http://www.javaperformancetuning.com/tips/jdbc.shtml
  • Generalnie należy przeglądać serwis - http://jdj.sys-con.com/read/46653.htm z którego pochodzą w/w informacje
  • Świetne tutoriale - http://www.j2eebrain.com/
  • Jeszcze raz o Grasshopper ma się świetnie - http://linux.sys-con.com/read/393685.htm - projekt jest na poziomie Developer Edition bezpłatny i umożliwia pisanie w .NET, przenosić do Javy i uruchamiać na Linuksie.
  • Ważne - ZEND Framework 1.0.0 już jest - (można się włączyć do prac Przemka) - http://linux.sys-con.com/read/397441.htm - ma wsparcie dla ORM
  • Opis platformy ZEND - http://framework.zend.com/whyzf/components/
    • Wstęp do JDBC:opis (dokumentacja JDBC) - http://java.sun.com/products/jdbc/download.html
    • samouczek - http://java.sun.com/developer/onlineTraining/Database/JDBC20Intro/JDBC20.html
  • Uwagi o JDBC - dla wersji 2.x wymagany jest pakiet JDBC core API (zawiera się w Java 2 SDK, Standard Edition - java.sql package) gdy programujemy po stronie klienta, strona serwerowa używa innej biblioteki zawartej w Java 2 SDK, Enterprise Edition (java.sqlx), która zapewnia wiekszą funkcjonalność (pulę, RowSet). Można też ściągnąć indywidualnie w/w bibliotekę X.

Brak komentarzy: