V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
www5070504
V2EX  ›  数据库

请教下关于 orm 和 sql 到底用哪个好的问题

  •  
  •   www5070504 · 2019-07-13 12:09:10 +08:00 · 3405 次点击
    这是一个创建于 1956 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想请教下各位 平时用 orm 还是 sql 多呢

    sql 可以跨语言 orm 跟语言绑定感觉有学习成本

    可能日经贴了 但是真的很困惑。。。

    第 1 条附言  ·  2019-07-13 19:44:23 +08:00
    抱歉无法挨个回复 感谢各位 我心里有点数了
    25 条回复    2019-08-31 09:08:26 +08:00
    starsriver
        1
    starsriver  
       2019-07-13 12:12:36 +08:00 via Android
    sql
    www5070504
        2
    www5070504  
    OP
       2019-07-13 12:18:09 +08:00
    @starsriver 谢谢
    lhx2008
        3
    lhx2008  
       2019-07-13 12:20:43 +08:00   ❤️ 1
    orm 只是帮你把关系转化成 sql 并且自动填充而已,完全不是一个纬度的东西。
    beginor
        4
    beginor  
       2019-07-13 12:25:38 +08:00 via Android
    为什么不是结合起来用呢,增删改查用 ORM,复杂查询用 SQL
    icy37785
        5
    icy37785  
       2019-07-13 12:26:41 +08:00 via iPhone
    小孩子才做选择,
    ke1e
        6
    ke1e  
       2019-07-13 12:32:03 +08:00 via Android
    我觉得个人开发选择 orm,无它,方便。团队的话业务与 sql 分离更容易管理
    leishi1313
        7
    leishi1313  
       2019-07-13 12:37:07 +08:00 via Android
    我觉得你如果在这么问的话,你直接写 sql 肯定会有注入漏洞
    way2create
        8
    way2create  
       2019-07-13 12:51:04 +08:00
    问再多也没用,实际开发该用啥还是用啥,照样要学
    eslizn
        9
    eslizn  
       2019-07-13 12:57:35 +08:00
    业务逻辑力一堆 sql 能看?
    lasuar
        10
    lasuar  
       2019-07-13 13:06:47 +08:00 via Android
    orm 可读性更好?实际开发过程中,简单的用 orm,复杂用 sql 写好注释
    Hstar
        11
    Hstar  
       2019-07-13 13:24:14 +08:00 via iPad
    我的观点是可以用 orm,但是必须懂 sql
    ibugeek
        12
    ibugeek  
       2019-07-13 13:26:04 +08:00
    增删改查用 ORM,复杂查询用 SQL
    liuxey
        13
    liuxey  
       2019-07-13 13:47:45 +08:00
    楼主的论据有问题,即使 SQL 跨语言,但和 SQL 相关的 API 还不是和语言绑定的?你要查 SQL、处理返回数据,都要学相关语言的 API 或包,只是 ORM 又多了一层而已,

    所以楼上们都说了,简单的 ORM,复杂查询 SQL
    JJstyle
        14
    JJstyle  
       2019-07-13 13:54:48 +08:00
    一看就没工作经验的人问的问题
    hourann
        15
    hourann  
       2019-07-13 14:07:19 +08:00 via iPhone
    sql:效率高,可迁移学习成本。orm:类型安全,可维护性强。个人项目、小规模项目,可以用 sql。其他情况下建议 orm。
    danjk159
        16
    danjk159  
       2019-07-13 14:17:06 +08:00
    sql 是基础,orm 是操作简化版的工具?基础总是要会的,总有时候会需要用到,比如效率要求比较高的时候.orm 很多时候比较方便,效率要求低用 orm 倒是无所谓,学到后面 sql 就要用了,但确实这个时候写成了不好维护,很多后台开发不擅长使用 sql,不知是否是 orm 使用过多 sql 经验不足.
    luwies
        17
    luwies  
       2019-07-13 14:35:03 +08:00
    安卓这个的 room 库是一个需要写 sql 的 ORM。。。
    NizumaEiji
        18
    NizumaEiji  
       2019-07-13 14:36:47 +08:00
    看情况
    如果让我用 jpa 这种东西 我宁愿用 jdbcTemplate 写 sql
    fox0001
        19
    fox0001  
       2019-07-13 19:33:29 +08:00 via Android
    没有最好,只有最适合。赞成 @beginor #4 的说法
    razertory
        20
    razertory  
       2019-07-13 20:34:36 +08:00
    程序员通过非 SQL 的编程语言操作数据库,最期望的应该就是想像操作编程语言中的数据结构来操作数据库,我认为这个是大多数开发者所期望的。数据库中有 OLAP 和 OLTP 场景,如果是偏向 OLAP,毫无疑问用 SQL,不论是关系型数据库还是大数据集群。反之,ORM 可以更专注在事务逻辑层面。
    Cbdy
        21
    Cbdy  
       2019-07-13 20:53:12 +08:00
    具体看需求场景
    kran
        22
    kran  
       2019-07-13 22:00:36 +08:00 via Android
    不用 orm 也挺好的
    sr0miao
        23
    sr0miao  
       2019-07-14 12:07:04 +08:00
    sql 好
    sazima
        24
    sazima  
       2019-07-14 23:20:17 +08:00
    我之前同事拒绝用 orm, 项目写到一半,然后自己封装了类似 orm 的东西
    jinsongzhao
        25
    jinsongzhao  
       2019-08-31 09:08:26 +08:00
    我是优先 orm,orm 解决不了的才使用 sql,当发现了 orm 可解决 sql 问题时,再替换掉 sql,目的是因为 orm 跨数据库兼容性很好,orm 会利用数据库中间件的缓存,升级数据库中间件就能自动引入未来的新 sql 技术,改善性能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1018 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:39 · PVG 04:39 · LAX 12:39 · JFK 15:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.