Dobry den,

Ak si odmyslite Criteria API ktore pouzivate tak Template design patern podporuje priamo aj Spring ktory pouzivate (JdbcDaoSupport.getJdbcTemplate), takze nemusite reimplementovat to co vam framework poskytuje. V novej verzii Spring 2.1 by mal byt uz aj zahrnuty support pre Criteria API.

Martin Krajci

Petr Burdik wrote:
Osobne do zblbnuti delam toto.

    /**
     * get index tables list
     */
    public ResultList getIndexTablesList(IndexTableAF form) {
        ResultList result = new ResultList();
        Session session = null;

        try {
        session = this.sessionFactory.openSession();

            // zjisti a nastavi paging control object
            Criteria criteriasCount =
session.createCriteria(IndexTable.class)
                .setProjection(Projections.count("oid"));
            Integer count = ((Integer)
criteriasCount.uniqueResult()).intValue();
            result.getPagingControl().setCount(count.longValue());
result.getPagingControl().setSelectedPage(form.getSelectedPage());
            result.getPagingControl().setInterval(form.getInterval());
            result.getPagingControl().recount();

            ArrayList list = (ArrayList)
session.createCriteria(IndexTable.class)
                .setFirstResult((((int) form.getSelectedPage() - 1) *
(int) form.getInterval()))
                .setMaxResults((int) form.getInterval())
                .list();

            if(list != null) result.setResultList(list);

        } catch (Exception ex) {
            logger.error("getIndexTablesList [Exception]: "
+ ex.getLocalizedMessage());
        } finally {
            session.close();
        }

        return result;
    }


Muj ResultList obsahuje paging control ktery na zaklade poctu objektu
celkem implementuje strankovani. zjisti ktera je predchozi, nasledujici
stranka, prvni a posledni, ... Tim jsem se okamzite zbavil urcite casti
kodu.

Pouzivam spring a hibernate. Tedy ne klasicke JDBC, ale Tvuj kod ze
zmineneho clanku je presnou odpovedi.

Diky za "nakopnuti"

Pet






On Thu, 18 Jan 2007 10:45:48 +0100, Petr Burdik <[EMAIL PROTECTED]> wrote:

Zrovna jsem aniz bych tento konkretni blog cetl premyslel o tomto
reseni. Kazdopadne podle blogu davas prednost asi AspectJ, je to tak?

Pet

On Thu, 18 Jan 2007 10:41:43 +0100, Roman Pichlik
<[EMAIL PROTECTED]> wrote:

aha, repetivni kod se resi pres navrhovy vzor Template method viz
clanek   Návrhový vzor Template method a jeho aplikace v prostředí JDBC
http://www.sweb.cz/pichlik/archive/2006_01_08_archive.html#113713436036810797

AOP by melo smysl napriklad pro kontrolu, ze vsechny casti aplikace
pouzivaji jednu vrstvu pro prisup k DB a zadna nejde oklikou napriklad
pres JDBC.


Petr Burdik napsal(a):
Sveho casu jsme to tu propirali :)
 Vysel z toho podobny paskvil jako tento ( v naznaku )
 try {
    sql dotaz
} catch (Exception ex) {
 } finally {
    try {
        close connection
    } catch (Exception ex) {
     } finally {
        tusim ze jeste jednou close
    }
 }
 Presne takto to nepouzivam, nemam ten vnoreny try/catch blok, ale
situace me donutila ze tam asi bude muset byt. ale nebavi me to psat
porad dokola tak hledam zpusob jak si praci ulehcit :) a napadlo me
aspektove programovani. Pokud najdete lepsi zpusob budu rad. Ale je to
fakt pruda t tady tusim jedno z mist kde to pouzit.
 Pet
   On Thu, 18 Jan 2007 10:17:53 +0100, Roman Pichlik
<[EMAIL PROTECTED]> wrote:

aktualne jsem hooodne nastvany na zkusob jak se pracuje s obsluhou
connection i u tahani dat pres hibernate. asi vime vsichni o co jde
:).

tak to teda netusim :), muzete se podelit?

   --Using Opera's revolutionary e-mail client:
http://www.opera.com/mail/







--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email______________________________________________________________________



______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email ______________________________________________________________________

Odpovedet emailem