Hi,
We are using Code Table concept .But sometimes /,most of the times you may
need a SQL which is lin
king few Tables to create the required result. So we want to make our
Programmers life easy and also 
want to Standardise. Another objective is to provide Data Security. For
Example One Department Should not 
see other Departments Customers. We have very detail application security
setup which is part of our framework(STRUTS++),
leaving the application team free to think only about the Business Logic.
So my only concern here is Performance / Ideal Design.
It would be great if you can comment on the following portion of my previous
mail.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>
>This looks a deviation from Model 2 Approach.
> 
>       So alternatively I was thinking to populate some Collection using
> some standard Method defined and then pass
> this collection to Custom Tag. This is definitely a good approach in
> Architecture sense.But if I consider the performance factor this looks a
bit
> expensive. Reason is simple, I need to run the SQL and execute a loop on
> ResultSet to create the Collection. Then in the custom Tag I need to run
> another loop on Collection to generate HTML.This effect can be really
> considerable in case of pages with many DropDowns.
>       Returning resultset is another option which will leave me Statement
> unclosed. I heard somwhere that ResultSet can be assigned to RowSet
without
> any loops. Also I can close the Statement and return the connection.
> Hope this will explain my situation better.Pls advise.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>.>>

Thanks a Lot for your advises.
Best Regards
Savant

-----Original Message-----
From: V. Cekvenich [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, November 20, 2002 9:24 PM
To: [EMAIL PROTECTED]
Subject: Re: About RowSet


Perhaps you wanted to create a SQL Super type. This is a commons sql 
design, it goes like this.

Thre are many types, codes, and decodes in SQL.
Newbies solve it like this.
Table States: StateCode, StateName;
Table Status: StatusCode, Status
Table NextStep: Step, Name
Table Type: Type, Name
etc. etc.

Thus creating many code tables and poulting the model and not be able to 
write OO.

The solution is a super type table that decodes all types like this:
Type, Code, Name
Ex:
State, NY, New York
Status, Closed, Closed

etc.

So one table to stroe all the types.

Then write a simple bean 2, properties, name/value.
Then write a helper bean that returns a collection of properties above, 
based on type.
So find("states");
or find("status");

I should upload this example up to bP.
My invoice is on the way.
hth,
V.
917 345 1445
[EMAIL PROTECTED]

Savantraj, Chennamakal Subramanian wrote:
> Hi,
> 
> Thanks for your reply. I think I failed to share my objective clearly with
> you.
> What we are planning to do is
>       1. Create a DB Table with two columns
>               {ID  VARCHAR2(20)
>                SQL_STMT VARCHAR2(1000)}
>       2. Register the SQL statement with an ID in DB
>               For Example for a Customer Drop Down generation I will have
> a record like
>               ID- CUSTDD001
>               SQL_STMT - SELECT Cust_Cd,Cust_Nm from Customer 
>       3. Write a Custom Tag Which will take this ID as an Argument
>       4. Custom Tag will retrieve the SQL_STMT based on ID ,then execute a
> loop on the resultset 
>           and return an HTML output like 
>           <SELECT >
>                       <option value="CustCd1">CustNm1
>                       <option value="CustCd1">CustNm1
>                       <option value="CustCd1">CustNm1
>           </SELECT>
>       
>       This looks a deviation from Model 2 Approach.
> 
>       So alternatively I was thinking to populate some Collection using
> some standard Method defined and then pass
> this collection to Custom Tag. This is definitely a good approach in
> Architecture sense.But if I consider the performance factor this looks a
bit
> expensive. Reason is simple, I need to run the SQL and execute a loop on
> ResultSet to create the Collection. Then in the custom Tag I need to run
> another loop on Collection to generate HTML.This effect can be really
> considerable in case of pages with many DropDowns.
>       Returning resultset is another option which will leave me Statement
> unclosed. I heard somwhere that ResultSet can be assigned to RowSet
without
> any loops. Also I can close the Statement and return the connection.
> Hope this will explain my situation better.Pls advise.
> 
> Thanks & Regards
> Savant
>       
> 
> 
> 
> 
> -----Original Message-----
> From: V. Cekvenich [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, November 20, 2002 7:36 PM
> To: [EMAIL PROTECTED]
> Subject: Re: About RowSet
> 
> 
> http://www.javaworld.com/javaworld/jw-02-2001/jw-0202-cachedrow.html as 
> per google, or you can read the JavaDoc on rowset in Java Developers 
> Connection on JavaSoft.com.
> 
> You should either use RowSet or Resultset, not sure of why mix.
> RowSet extends ResultSet, major difference that former is a bean, that 
> is you can say new RowSet(), thus making GC a bit easier for new 
> developers who do not do the nested finally right for the ResultSet.
> 
> Since you are posting on Struts, I assume you would use existing tags, 
> as opposed to writing tags.
> 
> There is a source code approach with "zero" copy on basicPortal.sf.net.
> A DAO has a ROWSET. (or CommonsSQL - 2 ways)
> A Bean has a DAO.
> DAO is also an iterator, and Bean is also a Collection(advanced topic: 
> even as your treat this bean for testing with bean properties, Struts 
> sees it as a collection (iterator adaptor w getRow), so it can do multi 
> row updates, for master detail processing).
> You unit test the Bean, so it can be used by Console, Model1 use bean,
etc.
> 
> The benefit of this design is that when a setter is fired by Struts, it 
> is on the disconnected RowSet, thus Zero copy.
> There are no VO, DTO, etc. objects that are GCed later, thus you can 
> support more concurrent users per server.
> 
> Not sure what loops or populations you are talking about, but there is a 
> rowset DAO w/ Struts on sf.net
> 
> Above is for any bean.
> 
> For options collection, you can create an collection of beans, with 2 
> properties. Again, do not use Resultset for beans, and RowSet for 
> options, it makes no sense.
> 
> hth,
> .V
> 
> ot: I will soon have a DAO that also uses Commons SQL so you can chose 
> RowSet or CommonSQL (else you write your own DAO, to say JDO)
> 
> Savantraj, Chennamakal Subramanian wrote:
> 
>>Hi,
>>Could anyone share your experience in using RowSet to Transfer data from
>>ResultSet?
>>What is the significance difference using a rowset instead of our custom
>>generated
>>collection object or something like TableModel?
>>What would be a better option for the following situation.
>>
>>Objective
>>      1. Create a Custom Tag which will generate a Table HTML Display
>>based on a Result Set.
>>Approach 1
>>      1. Run the SQL
>>      2. Populate Collection (RowSet/TableModel/Any other) from ResultSet
>>      3. Pass the collection to Custom Tag
>>      4. Custom Tag will generate <SELECT><Option></SELECT> based on the
>>collection.
>>
>>In the above scenario will I save any processing (Looping) if I use
> 
> RowSet?
> 
>>If I am using my own
>>collection I need to run Loop 1 to create the collection and Loop 2 inside
>>Custom Tag to generate
>>HTML. RowSet looks like saving the first loop. But how it is internally
>>doing? Is it the same way?
>>
>>Pls provide your advice.
>>
>>Thanks in advance
>>
>>Best Regards
>>Savant
>>      
>>
>>-------------------------------------------------------------------
>>This email is confidential and intended only for the use of the individual
>>or entity named above and may contain information that is privileged. If
> 
> you
> 
>>are not the intended recipient, you are notified that any dissemination,
>>distribution or copying of this email is strictly prohibited. If you have
>>received this email in error, please notify us immediately by return email
>>or telephone and destroy the original message. Thank you. - This mail is
>>sent via Sony Asia Pacific Mail Gateway. 
>>-------------------------------------------------------------------
> 
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> 
> -------------------------------------------------------------------
> This email is confidential and intended only for the use of the individual
> or entity named above and may contain information that is privileged. If
you
> are not the intended recipient, you are notified that any dissemination,
> distribution or copying of this email is strictly prohibited. If you have
> received this email in error, please notify us immediately by return email
> or telephone and destroy the original message. Thank you. - This mail is
> sent via Sony Asia Pacific Mail Gateway. 
> -------------------------------------------------------------------




--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>

-------------------------------------------------------------------
This email is confidential and intended only for the use of the individual
or entity named above and may contain information that is privileged. If you
are not the intended recipient, you are notified that any dissemination,
distribution or copying of this email is strictly prohibited. If you have
received this email in error, please notify us immediately by return email
or telephone and destroy the original message. Thank you. - This mail is
sent via Sony Asia Pacific Mail Gateway. 
-------------------------------------------------------------------


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to