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

如何更省事地用 Java 写一个命令行交互的 CRUD 应用

  •  
  •   Oathbinder · 2018-10-07 09:40:57 +08:00 · 4694 次点击
    这是一个创建于 2266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个 project 是一个 10 多张表的信息系统的 CRUD,纯命令行交互,直接上手写还是用 Spring Boot ?这个主要关系到用不用 JPA。另外命令行交互需要用 Spring Shell 吗? Java 写的不多求指导

    第 1 条附言  ·  2018-10-07 14:12:01 +08:00
    不是我不想用其他语言,是只能用 Java
    25 条回复    2018-10-08 15:17:18 +08:00
    mrsatangel
        1
    mrsatangel  
       2018-10-07 09:53:55 +08:00 via iPhone
    jcommander+mybatis
    godoway
        2
    godoway  
       2018-10-07 10:10:57 +08:00 via Android
    同觉得 jcommander 就行,spring shell 好重
    另外比起 mybatis 这种用 jooq 会舒服一点
    lhx2008
        3
    lhx2008  
       2018-10-07 10:12:22 +08:00 via Android
    是的,boot,jpa 和 shell
    gowk
        4
    gowk  
       2018-10-07 10:17:57 +08:00 via Android
    其实吧,倒不如用 Go 省事,来的简单
    shakespaces
        5
    shakespaces  
       2018-10-07 10:19:22 +08:00 via Android
    @gowk 这就属于跑题了😂
    Oathbinder
        6
    Oathbinder  
    OP
       2018-10-07 10:22:07 +08:00
    @gowk 要求 Java+Oracle 所以就没办法了,如果不要求 Java 我就用.NET Core+SQL Server 了
    @godoway 实际上输入的也用不着去 parse,就是输入 1234 abcd enter your name 这种,所以是不是 jcommander 都用不着了
    gowk
        7
    gowk  
       2018-10-07 10:24:54 +08:00
    既然非要用 Java,那就用 Spring Boot + Spring JDBC Template 来做,简单实用
    godoway
        8
    godoway  
       2018-10-07 10:43:31 +08:00 via Android
    @Oathbinder jcommander 方便拿参数,毕竟参数顺序可变。
    Oathbinder
        9
    Oathbinder  
    OP
       2018-10-07 10:59:45 +08:00
    @godoway 我的意思是每次的输入要么是 1234 这种序号,要么是一个字符串,不会出现一次性输入多个字符串的情况
    passerbytiny
        10
    passerbytiny  
       2018-10-07 12:02:45 +08:00
    命令行交互 CRUD,这是在故意整人吗。这种事,老老实实交给 SQL 加脚本去做,用任何语言做,都是坑。
    godoway
        11
    godoway  
       2018-10-07 12:07:25 +08:00 via Android
    @Oathbinder 那可以不用呀,怎么省事怎么来
    Oathbinder
        12
    Oathbinder  
    OP
       2018-10-07 13:27:37 +08:00
    @passerbytiny 因为这就是个 CLI App 啊
    xuanbg
        13
    xuanbg  
       2018-10-07 13:40:30 +08:00
    直接登录数据库不就行了?要个毛线工具 APP
    OpenJerry
        14
    OpenJerry  
       2018-10-07 13:43:07 +08:00 via Android
    @xuanbg 因为不是每个人都会用数据库?
    Cbdy
        15
    Cbdy  
       2018-10-07 13:44:57 +08:00
    给用户装一个 DataGrip
    liyuanba
        16
    liyuanba  
       2018-10-07 13:47:33 +08:00
    cli app go 最合适
    glues
        17
    glues  
       2018-10-07 13:57:45 +08:00
    用 Java 写命令行,还想省事?
    Oathbinder
        18
    Oathbinder  
    OP
       2018-10-07 14:11:14 +08:00
    @glues 我知道 Java 的 CLI 神坑,我也没办法啊,这不是找个相对简单的办法
    qfdk
        19
    qfdk  
       2018-10-07 14:45:55 +08:00 via iPhone
    jhipster 全是你的要求了
    qfdk
        20
    qfdk  
       2018-10-07 14:50:01 +08:00 via iPhone
    顺便送个界面 不喜欢 ? 没关系 bash ➕ curl 反正有 swagger
    每个表四个 curl 的 link 那就直接 bash 调用就好了 别费脑子了
    TommyLemon
        21
    TommyLemon  
       2018-10-08 10:06:14 +08:00
    10 几张表,客户端还是命令行交互,看样子这需求挺简单的。
    直接 客户端命令行用 CURL + 服务端用 APIJSON (基于 SpringBoot,不用写接口和文档了,全自动化搞定)

    创作不易,GitHub 右上角点 Star 支持下吧,谢谢^_^
    https://github.com/TommyLemon/APIJSON
    kangkang
        22
    kangkang  
       2018-10-08 10:18:39 +08:00
    我用 Go 写过一个
    Oathbinder
        23
    Oathbinder  
    OP
       2018-10-08 10:25:04 +08:00
    @TommyLemon 这样的话交互就得拿 bash 做了,而且还要在 bash 里面处理 json,这个也不会比 Java CLI 省事吧
    TommyLemon
        24
    TommyLemon  
       2018-10-08 11:25:08 +08:00
    @Oathbinder
    可以用这个 Python 工具,支持直接在 CMD 里命令行发请求
    https://github.com/TommyLemon/APIJSON/tree/master/APIJSON-Python
    catinred
        25
    catinred  
       2018-10-08 15:17:18 +08:00
    @Oathbinder shell 处理 json 可以用 jq
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2926 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:09 · PVG 08:09 · LAX 16:09 · JFK 19:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.