2016-11-18 12 views
0

私はクラスのプロジェクトに取り組んでおり、JDBCを使用している初心者です。 1つの部分については、私のインストラクターは、「クエリコマンドを入力してデータベースから情報を取得するためのクエリメニューを提供する」ことを望んでいます。私はかなり研究し、これを行う方法を見つけることができません。私が見てきたほとんどの例は、ユーザーが照会しようとしていることをすでに知っています。ユーザーが何かを照会できるようにしている場合、どのようにして正しい情報を返すことができますか?私がこれまでに持っているコードは以下の通りです。JDBCを使用したユーザー入力に基づいてSQLデータベースからデータを取得しますか?

System.out.println("What table do you wish to query?"); 
table = scan.nextLine(); 
System.out.println("What values do you wish to query? Type them separated by commas. If you wish to select all values, please type a *."); 
values = scan.nextLine(); 
System.out.println("Type the conditions for your WHERE clause, excluding the keyword WHERE."); 
conditions = scan.nextLine(); 
query = "SELECT " + values + " FROM " + table + "WHERE " + conditions; 
try { 
    stmt = con.createStatement(); 
    ResultSet rs = stmt.executeQuery(query); 
    while (rs.next()) { 
     if(values != "*") 
      String results = rs.getString(values); 
    } 

私は、ユーザーが、この例では、彼らは、ユーザーが探している知っているように、私は、whileループに入れているかわからない照会に何が起こっているか見当がつかないので、私は立ち往生しています場所があります苗字。

rs = stmt.executeQuery("SELECT Lname FROM Customers WHERE Snum = 2001"); 
while (rs.next()) { 
    String lastName = rs.getString("Lname"); 
    System.out.println(lastName); 
} 

ご意見やご協力をいただければ幸いです。

+0

ここにpingがあります。重複する吹き出しがポストされ削除されましたか? – Drew

+1

@Drew yeahもっと具体的な答えが載っていると思っています。 –

答えて

0

私はあなたに基本があると思うので、それを行う可能性のある方法についてpseduocodeを与え、空白を埋めるようにします。

1) input user values and put in an array (VALUESARRAY) 
2) validate values against table field names (exit if invalid) 
3) prepare query 
4) execute query 
5) loop through the VALUEARRAY and get appropriate value from the result set  
    (same as you did in your example). 

私は#5はあなたが何をするか分からなかったと思いますが、配列を使用するとそれを解決するはずです。

関連する問題