当前位置:  开发笔记 > 编程语言 > 正文

Haskell有ORM工具吗?

如何解决《Haskell有ORM工具吗?》经验,为你挑选了3个好方法。

使用Haskell与数据库交互的最佳方法是什么?我习惯使用某种ORM(Django的ORM,hibernate等),类似的东西在使用HAppS创建应用程序时会很好.

编辑:就实际数据库而言,我希望可以自由选择Postgresql MySql和SQLite.



1> Jason Dagit..:

我想到的图书馆不是ORM,但它仍然可以做你想要的.

如果你想要一些能让你的数据库访问安全的东西,同时很好地将东西集成到你的程序中,那么试试HaskellDB.它基本上会查看您的架构,生成一些数据结构,然后为您提供类型安全的查询方式.它已经存在了很长一段时间,社区的意见是它很好而且稳定.

要使用它,您需要一些底层的Haskell DB库,如HSQL.

祝好运!



2> tomjen..:

存在ORM库的原因是C#或Java中的对象与存储在数据库中的对象之间存在相对较大的差异.这在Haskell中不是一个问题,因为:

    它没有对象

    数据集和Haskell列表都有它们在数学集理论中的灵感,因此它们之间的摩擦力远远小于数据库和对象之间的摩擦力.


我在Python中使用SqlAlchemy,因为它可以轻松地组装/重用SQL语句而无需直接操作字符串.Haskell有这样的东西吗?

3> John Wiegley..:

持久性使用起来相当不错,并允许您依赖类型推断来确定查询所涉及的表.例如,如果我的"模型"文件中包含以下内容:

User
    name Text
    age Int

Login
    user UserId
    login Text
    passwd Text

然后我可以这样做:

Just (Entity uid _)          <- selectFirst [ UserName ==. "Some User ] []
Just (Entity lid Login {..}) <- selectFirst [ LoginUser ==. uid ] []

它会知道我的意思是哪些表.当然,您可能不希望像这样编写部分代码,但我想强调查询.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有