使用korma.db时,defdb可以使用sqlite3帮助程序建立与sqlite3数据库的连接。但是,我尝试将数据库放在项目目录的根目录下,与project.clj一起放在资源目录中,但是当我尝试使用db时,我得到了:
无法使用SQL执行查询: SELECT“examples”。* FROM“examples”:: [] 的SQLException: 消息:[SQLITE_ERROR] SQL错误或缺少数据库(没有这样的表:示例)
毋庸置疑,我的sqlite数据库包含一个示例表。尝试执行此操作时,我在根项目目录中获得了一个零字节的sqlite.db文件。
顺便说一句,我是在项目中从lein repl做的。
编辑:这是我失败时所做的事情:
(use 'korma.db)
(defdb db (sqlite3 {:db "filename.db"}))
(use 'korma.core)
(defentity examples)
(select examples)
答案 0 :(得分:1)
以防任何人想知道或遇到这个......
使用版本[korma "0.4.2"]
和[org.xerial/sqlite-jdbc "3.7.15-M1"]
在我的project.clj
:
我的项目结构如下:
root/project.clj
root/db/dev.sqlite3
root/src/...
这就是我使用korma访问db的方法:
(use 'korma.db)
(defdb mydb {:classname "org.sqlite.JDBC"
:subprotocol "sqlite"
:subname "db/dev.sqlite3"})
基本上,使用子名称,我能够在lein项目的根目录中搜索。我在上面的dir结构的子名称中添加了db/
。