Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Interfacce e StringBuilder

    ciao!

    io ho una interfaccia del genere:
    codice:
    @BindDao(TodoList.class)
    public interface TodoListDao {
    
        @BindSqlSelect
        List<TodoList> selectAll();
    
        @BindSqlSelect(jql = "SELECT * FROM TodoList WHERE DATE(TodoList.dataFrom) = ${giorno} AND ${adesso} BETWEEN SUBSTR(TodoList.dataFrom, 12, 5) AND SUBSTR(TodoList.dataTo, 12, 5) AND TodoList.roomsId = ${room}")
        List<TodoList> selectDateStanza(String giorno, String adesso, int room);
    }
    da perfetto ignorante quale sono, volevo costruire la query con stringbuilder.
    ma essendo in una interfaccia non posso farlo.
    come potrei ovviare??

  2. #2
    Quote Originariamente inviata da fermat Visualizza il messaggio
    da perfetto ignorante quale sono, volevo costruire la query con stringbuilder.
    ma essendo in una interfaccia non posso farlo.
    come potrei ovviare??
    Non so di quale libreria/framework siano quelle annotation @BindDao, @BindSqlSelect (chiarisci magari, che è meglio).
    Sono sicuramente per un qualche "binding" tale per cui è la libreria/framework a creare una implementazione della interfaccia basandosi sulla forma dei metodi e sulle indicazioni date dalle annotation.

    Il punto è che questa è una forma molto "dichiarativa", NON programmatica, per gestire le query.
    Se vuoi fare qualcosa di più dinamico, es. comporre tu una query, devi vedere la documentazione di questa libreria/framework. (ripeto: dicci quale è, altrimenti posso fare una ricerca di queste annotation)
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  3. #3
    ciao!

    la libreria kripton, ed è per android.
    ed è una libreria che sto usando per gestire un db sqlite sulla app.
    questo il link all'esempio di jql: https://github.com/xcesco/kripton/wiki/JQL

    il tutorial indica solo questa strada per la creazione delle classi/interfacce.
    non ho trovato altri esempi che facciano al caso mio!

  4. #4
    Quote Originariamente inviata da fermat Visualizza il messaggio
    la libreria kripton, ed è per android.
    Ok .... mai sentita prima.

    Quote Originariamente inviata da fermat Visualizza il messaggio
    il tutorial indica solo questa strada per la creazione delle classi/interfacce.
    non ho trovato altri esempi che facciano al caso mio!
    Forse potrebbe esserti utile: https://github.com/xcesco/kripton/wiki/Dynamic-parts
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  5. #5
    ma in verità per la parte dinamica non ho problemi, se metto la query come nell'esempio.

    mi chidevo se c'era un modo per farlo tramite StringBuilder dentro ad una interfaccia.
    era più una cosa "accademica" che relativa alla libreria in se.

    scusate se mi sono spiegato male.

  6. #6
    Quote Originariamente inviata da fermat Visualizza il messaggio
    mi chidevo se c'era un modo per farlo tramite StringBuilder dentro ad una interfaccia.
    era più una cosa "accademica" che relativa alla libreria in se.
    Non ho letto tutto quel wiki ma ... ad occhio direi di no. Se componessi tu una stringa di query dinamicamente a runtime (con StringBuilder, concatenazione, ecc...) ..... verrebbe (ovviamente) meno il senso dell'approccio "dichiarativo" offerto da questa Kripton.

    E dopotutto, comunque, non puoi certo comporre a runtime il valore di una annotation. I valori di una annotation possono solo essere "costanti a tempo di compilazione".


    Ah, non avevo letto prima ma leggo ora che Kripton NON si basa sulla reflection a runtime (come pensavo inizialmente) né su proxy generati a runtime o che altro. Si basa su un annotation processor, quindi genera a livello di compilazione delle classi che implementano quelle interfacce annotate.
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non ho letto tutto quel wiki ma ... ad occhio direi di no. Se componessi tu una stringa di query dinamicamente a runtime (con StringBuilder, concatenazione, ecc...) ..... verrebbe (ovviamente) meno il senso dell'approccio "dichiarativo" offerto da questa Kripton.

    E dopotutto, comunque, non puoi certo comporre a runtime il valore di una annotation. I valori di una annotation possono solo essere "costanti a tempo di compilazione".


    Ah, non avevo letto prima ma leggo ora che Kripton NON si basa sulla reflection a runtime (come pensavo inizialmente) né su proxy generati a runtime o che altro. Si basa su un annotation processor, quindi genera a livello di compilazione delle classi che implementano quelle interfacce annotate.
    ok più o meno ho capito.
    grazie per la spiegazione!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.