2013-01-17 7 views
5

Patrzę na różne biblioteki, które mogą być używane jako szablony w moim projekcie, a teraz Apache Velocity wygląda jak dobry kandydat. Mam następujące wątpliwości dotyczące jego użycia:Definiowanie zapytań do bazy danych w szablonach Velocity

Czy jest możliwe określenie kwerendy bazy danych SQL w szablonie i użycie wartości powrotnej zapytania do wypełnienia parametru ?. Znalazłem następujący przykład w przewodniku użytkownika Velocity:

Hello, 

#set($result = $query.criteria("name")) 
Your username is $result. 

Jednak przewodnik nie wyjaśnia zbyt wiele na temat wykonywania zapytań SQL. Czy można zdefiniować zapytanie SQL SELECT, które zwraca wartość i przypisuje tę wartość do zmiennej w szablonie? Zastanawiam się, czy jest coś takiego jak ten przykład poniżej?

Hello, 

#set($result = $executeQuery("SELECT name FROM user")) 
Your username is $result. 

Byłbym wdzięczny, gdybyś mógł rzucić trochę światła na to. Czy ktoś jest na tyle dobry, aby podać przykład lub wskazać mi lokalizację, w której mogę znaleźć dodatkową dokumentację?

Odpowiedz

0

Ten Poniżej dla HQL (można spróbować z innymi przy użyciu tego jako przykład)

Ogólne przykład pokazujących jak wyświetlać pierwszych 5 wyników danego zapytania:

#set($hql = "<query here>") 
#set($results = $xwiki.searchDocuments($hql, 5, 0)) 
#foreach ($item in $results) 
* $item 
#end 

przykładach poniżej pokaże ci różne zapytania HQL, które możesz napisać. proste zapytanie

Wyświetla wszystkie dokumenty, które zostały utworzone przez użytkownika XWiki.JohnDoe

#set($hql = "where doc.creator='XWiki.JohnDoe'") 

każda dodatkowa Info

może warto spojrzeć na ten link

+0

Dzięki za odpowiedź.Masz pomysł, czy mogę tutaj wykonać zapytanie SQL? Jeśli to możliwe, gdzie należy skonfigurować poświadczenia bazy danych i informacje o łączach? Wiem, że mogę pobrać szablony z bazy danych za pomocą DataSourceResourceLoader. Ale czy możliwe jest wykonywanie zapytań SQL i uzyskiwanie wartości w szablonie? Z góry dziękuję. –

+0

Jest to związane z XWiki, wolnostojąca prędkość domyślnie nie ma obiektu '$ xwiki'. –

2

Prędkość jest bardzo lekkim silnikiem , mającym bardzo małą funkcjonalność. Działa przez zmienne zdefiniowane (przez ciebie) w kontekście do pliku szablonu. Domyślnie kontekst to pusty, co oznacza, że ​​nie ma żadnych zmiennych do użycia w szablonie. Prędkość nie pozwala uruchamianiu nowych obiektów niestandardowych klas, wszystko to pozwala na użycie jest ciąg i literałów numerycznych plus mapy i list:

#set ($n = 5) 
#set ($s = 'Hello New World!') 
#set ($m = {'four' : 4, 'five' : $n}) 
#set ($a = ['x', 'y', 'z']) 

jesteś odpowiedzialny za Velocity „inteligentne” poprzez zapełnianie kontekst z użytecznymi obiektami przed interpolacją. Jako punkt wyjścia możesz użyć niektórych z Velocity Tools. Możesz dodać własne narzędzia, takie jak narzędzie SQL, które umożliwia uruchamianie zapytań. Możesz też użyć narzędzia higher level framework that uses velocity, które już oferuje bogaty zestaw narzędzi dostępnych w szablonach.

Aby odpowiedzieć na pytanie, można wykonać dowolną instrukcję SQL, o ile doda się w kontekście obiekt, który może wykonywać takie instrukcje. Powinieneś przeczytać więcej o tym, jak poprawnie używać Velocity w ich developer guide.

Powiązane problemy