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

请教各位大佬,日常业务开发时 SQL 你们一般怎么处理

  •  
  •   night98 · 2018-09-26 22:18:18 +08:00 · 2956 次点击
    这是一个创建于 2286 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我个人习惯是在 navicat 先写查询,调试好没问题之后粘贴到 xml 中,然后把参数改成 iBatis 占位符,这样就是一种业务对应一个<select> 比如: select id,name from t_user where id = #{id} and name = #{name} 最近新加入一家公司,要求大概是这种: </select> select <include base="" list=""> from xxx <dynamic prepend=" "> <isempty prepend="," preperty="xx">xx</isempty> <isempty prepend="," preperty="xxxx">xxxx</isempty> .....其他所有参数的 isempty </dynamic> </include>

    请问大家平常习惯性用哪种?

    个人用第一种的原因是一个查询对应一个方法,日后要改对应业务的时候好处理。

    公司要求这种的话就是说希望扩展性好一些,别人用这个组件的时候不需要再自己写查询。

    想问下各位大佬平常用的是哪种?

    11 条回复    2018-09-27 16:09:41 +08:00
    night98
        1
    night98  
    OP
       2018-09-26 22:36:31 +08:00
    emmmm,换行符怎么都被删了。。
    talen666
        2
    talen666  
       2018-09-26 22:57:18 +08:00
    根据公司风格来呗,统一比较好。目前我是第一种,复制过来改占位符比较快
    ysweics
        3
    ysweics  
       2018-09-26 23:11:23 +08:00 via iPhone
    第二种应该使用 mybatis 生成器生成的,一般简单 sql 可以直接用生成器里面的 exampl e,复杂的就用你所说的第一种
    moresteam
        4
    moresteam  
       2018-09-26 23:47:38 +08:00 via Android
    直接在 xml 里写
    night98
        5
    night98  
    OP
       2018-09-26 23:53:30 +08:00
    @ysweics #3 主要是有点不太理解为什么查询条件都要写在一个 select 里面,而且 select <include baselist>这种会查出很多不需要的字段感觉有点浪费性能。
    guojxx
        6
    guojxx  
       2018-09-27 08:59:22 +08:00
    直接映射对象 crud 一句 sql 都不写
    zhangwugui
        7
    zhangwugui  
       2018-09-27 09:36:22 +08:00
    使用类似 mybatis plus 类的插件来生成通用的增删改查,具体业务的就自己写了,比如统计啥的。
    Pythoner666666
        8
    Pythoner666666  
       2018-09-27 10:21:57 +08:00
    ORM....
    msg7086
        9
    msg7086  
       2018-09-27 15:03:05 +08:00
    我们的产品全程 ORM 映射,禁止无谓的 RAW SQL 语句查询。
    night98
        10
    night98  
    OP
       2018-09-27 15:52:06 +08:00
    @guojxx #6
    @Pythoner666666 #8
    @msg7086 #9
    jpa 么?
    msg7086
        11
    msg7086  
       2018-09-27 16:09:41 +08:00
    @night98 (我不是写 Java 的(光速逃
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1072 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 18:30 · PVG 02:30 · LAX 10:30 · JFK 13:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.