请教下关于 orm 和 sql 到底用哪个好的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
www5070504
V2EX    数据库

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

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

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

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

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

    第 1 条附言  &nbs; 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     Solana     2760 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 07:50 PVG 15:50 LAX 00:50 JFK 03:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86