2011-07-14 36 views
1

哪些现有的Scala数据库API与SqlSoup for Python(SqlAlchemy的一部分)最为相似?我在SqlSoup中看到的:一个方便且大多数可移植的数据库API,我不必指定模式,所有类型都通过反射来推断,但我不必编写原始SQL表达式。还有一个好处是,它是支持“其他”(模式规范,ORM等)的更完整数据库包的一部分,并且它们共享许多相同的查询抽象。我想像Scala 2.9的动态类型可能在这里派上用场。提前致谢。与SqlSoup for Scala类似吗?

回答

0

最相似的是支持Jython的SQLAlchemy 0.6 http://www.sqlalchemy.org/news.html。这意味着您可以在JVM上使用SQLAlchemy并从Java或Scala调用它。查看更多细节http://www.rexx.com/~dkuhlman/jython_course_03.html#calling-jython-from-java

你可能需要在Jython中编写一些接口代码。

SQLAlchemy的低效率来自SQL和面向对象思维之间的阻抗不匹配。既然您已经选择了非面向对象的语言,那么现在是时候摆脱SQLAlchemy克隆并在线程池中工作,以便您可以非阻塞地访问SQL数据库。当你将问题分解成许多简单的小任务时,演员工作得很好,而SQLSoup似乎太重了。

也许你也会受益于SQL数据库前的memcache。想象一下,您需要通过7个步骤来处理SQL请求,才能以所需的形式获取数据。如果将所有中间结果保存在内存缓存中,则可以减少您访问SQL数据库的次数。演员可以自己设计一个松散的情侣设计,你可以替换一个演员或在一个地方插入两个演员。

+0

出于性能方面的原因,我们实际上已经从Python + SQLAlchemy转移了出来 - 花费了太多的时间来攻击SQLAlchemy的内核。我想我应该明确说明我希望API是一种编译语言(例如Scala,Java)。 – Yang