🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
8 messages
8 total messages Started by Jacek Czerwinski Fri, 30 Sep 2011 05:47
Problem koderski nad JDBC
#152911
Author: Jacek Czerwinski
Date: Fri, 30 Sep 2011 05:47
9 lines
1093 bytes
W pewnym punkcie kodu mam Connection, i trzeba użyć API które używa 
DataSource. Nie widzę w Connection możliwości wydobycia 'fabryki' która 
to stworzyła.

a) ślepy jestem?
b) wymysliłem z automatu zaimplementowac lokalne lipne DataSurce które 
zwróci powyższe connection. Objętość implementacji spora, ale prawie 
cała z automatu.
c) ..... ?
Re: Problem koderski nad JDBC
#152913
Author: Tomek Łabuz
Date: Fri, 30 Sep 2011 06:09
8 lines
1204 bytes
W dniu 2011-09-30 07:47, Jacek Czerwinski pisze:
> W pewnym punkcie kodu mam Connection, i trzeba użyć API które używa
> DataSource. Nie widzę w Connection możliwości wydobycia 'fabryki' która
> to stworzyła.
> 

Najczęściej ma się DataSource i pobiera z niego Connection czyli na
dobrą sprawę dostęp do DataSource jest.... a odwrotnie.... a po grzyba?
Re: Problem koderski nad JDBC
#152914
Author: sielim
Date: Fri, 30 Sep 2011 07:41
19 lines
1774 bytes
Użytkownik "Tomek Łabuz" <javatrainings@gmail.com> napisał w wiadomości 
news:j63mfg$egv$1@news.onet.pl...
>W dniu 2011-09-30 07:47, Jacek Czerwinski pisze:
>> W pewnym punkcie kodu mam Connection, i trzeba użyć API które używa
>> DataSource. Nie widzę w Connection możliwości wydobycia 'fabryki' która
>> to stworzyła.
>>
>
> Najczęściej ma się DataSource i pobiera z niego Connection czyli na
> dobrą sprawę dostęp do DataSource jest.... a odwrotnie.... a po grzyba?

No właśnie ...
Jacku, wyjaśnij, po co Ci DataSource na tak niskim poziomie, na którym masz 
już tylko Connectiony.
Chcesz z kodu niskopoziomowego związanego z obsługą jednego Connectiona 
otwierać kolejne Connectiony
czy coś w tym stylu ?
Dobrze byłoby zajrzeć jak są robione Connection poolingi itp. 
Re: Problem koderski nad JDBC
#152915
Author: Jacek Czerwinski
Date: Fri, 30 Sep 2011 07:50
24 lines
1862 bytes
W dniu 2011-09-30 08:09, Tomek Łabuz pisze:
> W dniu 2011-09-30 07:47, Jacek Czerwinski pisze:
>> W pewnym punkcie kodu mam Connection, i trzeba użyć API które używa
>> DataSource. Nie widzę w Connection możliwości wydobycia 'fabryki' która
>> to stworzyła.
>>
>
> Najczęściej ma się DataSource i pobiera z niego Connection czyli na
> dobrą sprawę dostęp do DataSource jest.... a odwrotnie.... a po grzyba?

Z tym grzybem to racja.

W głębokim komponencie, mam ResultSeta (komponenty są na RS 
zorientowane, przetwarzają go) i Connection pozyskane z ResultSeta
Connection con = rs.getStatement().getConnection();//.getMetaData()

... potrzebuję sobie doczytać z bazy, czego nie mam w tym RS.

Przemyślałem, może być ale nie musi jeszcze jeden problem. Jeśli 
Connection coś robi, i dołożę mu przed zakończeniem, czy można się 
spodziewać np. braku izolacji błędów z obu "wątków" ?

Środowisko użycia komponentu mieszane, serwer/desktop, więc nie 
chciałbym JNDI itp.
Re: Problem koderski nad JDBC
#152916
Author: Tomek Łabuz
Date: Fri, 30 Sep 2011 08:24
39 lines
2502 bytes
W dniu 2011-09-30 09:50, Jacek Czerwinski pisze:
> W dniu 2011-09-30 08:09, Tomek Łabuz pisze:
>> W dniu 2011-09-30 07:47, Jacek Czerwinski pisze:
>>> W pewnym punkcie kodu mam Connection, i trzeba użyć API które używa
>>> DataSource. Nie widzę w Connection możliwości wydobycia 'fabryki' która
>>> to stworzyła.
>>>
>>
>> Najczęściej ma się DataSource i pobiera z niego Connection czyli na
>> dobrą sprawę dostęp do DataSource jest.... a odwrotnie.... a po grzyba?
> 
> Z tym grzybem to racja.
> 
> W głębokim komponencie, mam ResultSeta (komponenty są na RS
> zorientowane, przetwarzają go) i Connection pozyskane z ResultSeta
> Connection con = rs.getStatement().getConnection();//.getMetaData()

to po co Ci DataSource z którego pochodzi?

> ... potrzebuję sobie doczytać z bazy, czego nie mam w tym RS.

mam nadzieję, że nie w pętli dla każdego wiersza z głównego rs? :)

> 
> Przemyślałem, może być ale nie musi jeszcze jeden problem. Jeśli
> Connection coś robi, i dołożę mu przed zakończeniem, czy można się
> spodziewać np. braku izolacji błędów z obu "wątków" ?
> 

co mu dołożysz i co masz na myśli pisząc o izolacji błędów, bo trochę
nie łapię? może mało kawy... :)

> Środowisko użycia komponentu mieszane, serwer/desktop, więc nie
> chciałbym JNDI itp.

co nie zmienia tego, że możesz używać DataSource jako głównego
interfejsu dostępu do danych i mieć go dostępnego w dowolnym
komponencie, chyba nie używasz w kodzie bezpośrednio pozyskania
DataSource ze środowiska tylko jakiś locator czy fabryka?
Re: Problem koderski nad JDBC
#152917
Author: Jacek Czerwinski
Date: Fri, 30 Sep 2011 09:01
46 lines
2829 bytes
W dniu 2011-09-30 10:24, Tomek Łabuz pisze:
> W dniu 2011-09-30 09:50, Jacek Czerwinski pisze:
>> W dniu 2011-09-30 08:09, Tomek Łabuz pisze:
>>> W dniu 2011-09-30 07:47, Jacek Czerwinski pisze:

>
> to po co Ci DataSource z którego pochodzi?

Dla API Spring JDBC. Polubiłem to i ujednolicam się do niego.

Komponent (jako klasa abstrakcyjna) robi przekształcenia z pola z RS, 
jak formatowanie i podobne, tej skali złożoności. Jednak TYM RAZEM musi 
sobie dociągnąć więcej informacji.

>
>> ... potrzebuję sobie doczytać z bazy, czego nie mam w tym RS.
>
> mam nadzieję, że nie w pętli dla każdego wiersza z głównego rs? :)
Dla nielicznych a najczęściej pojedynczego, oraz cachowane, ale nawet 
cache pierwszy raz trzeba załadować.

Wiem o czym mówisz ;) , kiedyś mi się coś podobnego puściło przypadkiem 
dla całej tabeli w pionie. Zdążyłem nie tylko kawę, ale i śniadanie. Tu 
nie będzie problemu.


>
> co mu dołożysz i co masz na myśli pisząc o izolacji błędów, bo trochę
> nie łapię? może mało kawy... :)

Niektóre środowiska nad bazą (ODBC chyba, Borlanda własne) mają z tym 
problem, najpewniej i najbardziej zalecane jest dokończyć fetch'owanie w 
jednym połączeniu, inaczej można dostać wyjątek (kod błędu) z "tego 
drugiego".


>
> co nie zmienia tego, że możesz używać DataSource jako głównego
> interfejsu dostępu do danych i mieć go dostępnego w dowolnym
> komponencie, chyba nie używasz w kodzie bezpośrednio pozyskania
> DataSource ze środowiska tylko jakiś locator czy fabryka?
Zerkałem, może za wąsko, na coś w rodzaju lokatora albo fabryki, 
przenośne między serwerem a desktopem (aplikacja musi być prosta w 
instalacji, najlepiej jeden JAR przygotowany dla firmy!), jak na razie 
nie trafiłem. Więc fajnego lokatora (aby nie podawać w parametrach) 
ciągle szukam. Takie JNDI dla ubogich ;)
Re: Problem koderski nad JDBC
#152918
Author: Tomek Łabuz
Date: Fri, 30 Sep 2011 09:19
48 lines
3179 bytes
W dniu 2011-09-30 11:01, Jacek Czerwinski pisze:
> W dniu 2011-09-30 10:24, Tomek Łabuz pisze:
>> W dniu 2011-09-30 09:50, Jacek Czerwinski pisze:
>>> W dniu 2011-09-30 08:09, Tomek Łabuz pisze:
>>>> W dniu 2011-09-30 07:47, Jacek Czerwinski pisze:
> 
>>
>> to po co Ci DataSource z którego pochodzi?
> 
> Dla API Spring JDBC. Polubiłem to i ujednolicam się do niego.
> 

no świetnie, skoro masz gdzieś pobieranie DataSource to pobierz go teraz
dodatkowo w swoim komponencie skoro masz taką potrzebę, po co kombinować
z jakimiś dodatkowymi proxy itp
po drugie której wersji jdbc używasz? może wystarczy bieżące Connection?
czy ciągniesz z innej bazy dodatkowe rzeczy ale z kontekstu wypowiedzi
sądzę, że nie


> Niektóre środowiska nad bazą (ODBC chyba, Borlanda własne) mają z tym
> problem, najpewniej i najbardziej zalecane jest dokończyć fetch'owanie w
> jednym połączeniu, inaczej można dostać wyjątek (kod błędu) z "tego
> drugiego".

pewnie dlatego można sobie dowolnie ustawiać bloki try catch żeby się
nie pogubić co z czego wyleciało


>>
>> co nie zmienia tego, że możesz używać DataSource jako głównego
>> interfejsu dostępu do danych i mieć go dostępnego w dowolnym
>> komponencie, chyba nie używasz w kodzie bezpośrednio pozyskania
>> DataSource ze środowiska tylko jakiś locator czy fabryka?
> Zerkałem, może za wąsko, na coś w rodzaju lokatora albo fabryki,
> przenośne między serwerem a desktopem (aplikacja musi być prosta w
> instalacji, najlepiej jeden JAR przygotowany dla firmy!), jak na razie
> nie trafiłem. Więc fajnego lokatora (aby nie podawać w parametrach)
> ciągle szukam. Takie JNDI dla ubogich ;)

no ale taki prosty locator DataSource dla ubogich to jeden dzień roboty
i to zakładając, że masz dużo przerw śniadaniowych, obiadowych, na
siusiu, telewizję i dodatkowo się opierniczasz.... jak to wszystko
odrzucisz to możesz to machnąć w kilkadziesiąt minut albo i mniej
a jak się uprzesz choć nie wiem po co to możesz sobie jndi na desktopie
postawić :)
btw - skoro używasz springa to czemu jego nie wykorzystać? przecież on
nie jest ograniczony do pracy tylko na serwerach?
Re: Problem koderski nad JDBC
#152919
Author: Tomek Łabuz
Date: Fri, 30 Sep 2011 09:20
5 lines
1178 bytes
> btw - skoro używasz springa to czemu jego nie wykorzystać? przecież on
> nie jest ograniczony do pracy tylko na serwerach?

mam na myśli kontener Springowy of kors a nie jakieś tam API czy coś :)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads