java 让用户通过控制台输入查询

java get user to input query via console

我正在使用 jdbc.

为 h2 table 开发一个简单的查询数据库

我的代码如下:

import java.sql.*;

public class program {

    public static void main(String a)
            throws Exception {
        Class.forName("org.h2.Driver");
        Connection conn = DriverManager.getConnection("jdbc:h2://C:/Users/Office/Desktop/DED/files/db/dedserver", "sa", "");
        Statement stat = conn.createStatement();    


        ResultSet rs = stat.executeQuery(a);

        ResultSetMetaData rsmd = rs.getMetaData();
        int columnsNumber = rsmd.getColumnCount();

        for (int a1 = 1; a1 <= columnsNumber; a1++) {

            String columnName = rsmd.getColumnName(a1);
            System.out.printf(columnName);

            int strLength1 = columnName.length();
            for(int c = 0; c+strLength1 <= 15;  c++){

                System.out.printf(" ");

            }

        }

        System.out.println("\n");

            while (rs.next()) {

                    for (int i = 1; i <= columnsNumber; i++) {
                        String columnValue = rs.getString(i);
                        System.out.printf(columnValue);

                        int strLength = columnValue.length();
                        for(int b = 0; b+strLength <= 15;  b++){

                            System.out.printf(" ");

                        }

                    }

                System.out.println("");
            }

        conn.close();
    }

}

我有两个问题,但有一个主要问题。

最主要的是,当程序是 运行 时,用户必须输入一串将被定义为 "a" 的文本,然后用作查询.如果查询失败,它应该打印回一条用户友好的消息,并且它还需要检测诸如用户输入 "help" 之类的内容,然后会显示其他内容。为此需要做什么?

另一个问题是如何对齐数据结果,以便在 table 中很好地格式化并全部对齐。

谢谢!

回答您的主要问题:

您可以执行此代码以从控制台输入获取查询:

import java.util.Scanner; 

...

Scanner scanner = new Scanner(System.in);
String a = scanner.nextLine(); // Stores the input from the console to this variable 

并查看您的用户是否键入 "help",输入此代码:

if (a.equalsIgnoreCase("help")) {
    // What ever you want here
 }