首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iBATIS for Python?

iBATIS for Python?
EN

Stack Overflow用户
提问于 2008-09-16 22:05:58
回答 2查看 5.5K关注 0票数 5

在我当前的gig中,我们通过Java使用iBATIS来CRUD数据库。我喜欢该工具的抽象特性,特别是在处理遗留数据库时,因为它不会将自己的语法强加给您。

我正在寻找类似于这个库的Python,因为该网站只有Java/.NET/Ruby版本可用。如果不需要的话,我不想切换到Jython。

对于Python,还有类似于iBATIS功能的其他项目吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-16 22:53:33

iBatis在XML文件中隔离SQL (或SQL的定义)。它特别关注SQL与其他地方定义的一些对象模型之间的映射。

SQL炼金术可以做到这一点--但它并不是一个非常完整的解决方案。与iBatis一样,您只能拥有SQL定义和表与Python定义之间的映射。

更完整的是有一个类定义,也就是SQL数据库定义。如果类定义生成SQL以及查询和处理DML,则这将更加完整。

我在SQLAlchemy和Django ORM之间翻滚。SQLAlchemy可以以类似于iBatis的方式使用。但我更喜欢将对象设计作为中心,并将SQL实现由工具集从对象派生出来。

我在大型、批量、独立的项目中使用SQLAlchemy .DB加载、模式转换、DW报告等都能很好地工作。在这些项目中,重点是数据的关系视图,而不是对象模型。例如,生成的SQL可以移动到PL/SQL存储过程中。

我将Django用于web应用程序,利用其内置的ORM功能。只需做一点点工作,就可以将Django ORM与Django环境的其余部分隔离开来。您可以使用提供全局设置将应用程序绑定到特定的数据库,而无需使用单独的设置模块。

Django包含许多公共关系(外键、多对多、一对一),它可以管理SQL实现。它为附加的数据库生成键和索引定义。

如果您的问题主要是面向对象的,并且数据库用于持久化,则Django的近乎透明的ORM层具有优势。

如果您的问题在很大程度上是关系型的,并且是以SQL处理为中心的,那么在SQLAlchemy中查看生成的SQL具有优势。

票数 10
EN

Stack Overflow用户

发布于 2008-09-16 22:17:30

也许SQLAlchemy SQL表达式支持是合适的。见文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/77731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档