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

时间:2015-04-13 20:41:13

标签: java database jdbc input alignment

我正在使用jdbc为h2表开发一个简单的查询数据库。

我的代码如下:

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”,然后用作查询。如果查询失败,它应该打印回用户友好的消息,并且还需要检测诸如用户键入“帮助”之类的东西,然后将显示其他内容。需要做些什么?

另一个问题是如何对齐数据结果,使其在表格中完全格式化并且全部对齐。

谢谢!

1 个答案:

答案 0 :(得分:0)

回答您的主要问题:

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

import java.util.Scanner; 

...

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

并查看您的用户是否输入了&#34; help&#34;,请输入以下代码:

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