postmodern-utils-0.0.1
Fiz um pacote que é um conjunto de funções e macros para facilitar o uso do Postmodern.
Download: http://www.lucindo.com.br/lisp/postmodern-utils.tar.gz
É possível instalar com ASDF-Install:
* (require :asdf-install) * (asdf-install:install "http://lucindo.com.br/lisp/postmodern-utils.tar.gz")
Com ele é possível fazer o seguinte:
(eval-when (:execute) (setf postmodern-utils:*db-name* “db-name” postmodern-utils:*db-user* “username” postmodern-utils:*db-pass* “password” postmodern-utils:*db-host* “server”))
Depois disso você pode usar a macro with-pooled-connection para todo código que precise acessar o banco, como por exemplo:
(defmacro update-dao-attribute (type id accessor-fn new-value) (let ((dao (gensym))) `(with-pooled-connection (with-transaction () (let ((,dao (get-dao type id))) (progn (setf (,accessor-fn ,dao) ,new-value) (save-dao ,dao)))))))
Nesse pacote ainda temos a função create-table-if-not-exists, a macro with-new-connection. A função que motivou o desenvolvimento dessa lib foi select-daos. Ela funciona como a select-dao do Postmodern, só que aceita alguns parâmetros (keyword) a mais:
(with-new-connection (select-daos 'entity :test '(:> attr1 100))
Mais exemplos:
(select-daos 'entity) (select-daos 'entity :limit 20) (select-daos 'entity :limit 20 :offset 40) (select-daos 'entity :order-by 'attr2) (select-daos 'entity :order-by '(:desc attr2)) (select-daos 'entity :test '(:> attr1 100) :order-by '(:desc attr2) :limit 100 :offset 200)
| Enviar por e-mail | Hits para esta publicação: 1211
Deixe uma resposta.