Database

CLSQL

  • (ql:quickload “clsql”)

(require "clsql")

(setq *conn*
    (clsql:connect '("127.0.0.1" "mydb" "user" "secret") :database-type :mysql))
(setq query "SELECT timestamp, value FROM data LIMIT 100;")

(loop for row in (clsql:query query :field-names t) do
   (format t "~A ~,5F~%" (nth 0 row) (nth 1 row))

CL-DBI

  • (ql:quickload “dbi”)

(require "dbi")

(setq *conn*
    (dbi:connect :mysql
                 :host "127.0.0.1"
                 :database-name "mydb"
                 :username "user"
                 :password "secret"))

(setq query (dbi:prepare *conn* "select timestamp, value from data LIMIT 100;"))
(setq result (dbi:execute query))

(loop for row = (dbi:fetch result)
  while row
  do (format t "~A ~,5F~%" (getf row :|timestamp|) (getf row :|value|)))

Mongo

  • (ql:quickload “cl-mongo”)

(use-package :cl-mongo)
(db.use "test")
(defvar *DOC* (make-document))
(add-element "key" "value" *DOC*)`
(db.insert "mycollection" *DOC*)
(db.find "mycollection" (kv "key" "value"))

ORM