2017-01-26 3 views
-1

私はテキスト領域の任意のSQL文を入力できるプログラムを作成しようとしています。それがクエリでない場合は、影響を受けた行をラベルに表示するか、クエリであれば結果を表示します。私は結果セットでjtableを埋める方法を知っています。しかし、私はちょっと質問と非クエリーの部分を貼り付けました。Java、TextAreaを使用してSQL文を作成する

+0

を助けたあなたは「選択」と比較して、それは 'insert'または' DELETE'コマンドの場合のようなものを意味しますか? – MadProgrammer

+0

'Statement'インターフェースの' execute'メソッドを使います。その戻り値は、取得するResultSetがあるかどうかを示します。 –

+0

私はプロジェクトとしてミニplsql開発者ウィンドウを構築しようとしていますので、SQL文を入力できる理由は? –

答えて

0

あなたが好きSTHで行くことがあります。あなたはgetConnection()フィールドを埋めるために持っているとあなたがベクトルのベクトルはに渡すようになるだろう原因そしてuは、TextArea.getText()文字列を渡すExecuteQueryを呼び出してからのJTableを作成することも

package default; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.Vector; 

    public class DBConnector { 



     private static Connection getConnection() throws SQLException 
     { 
      String url  = "your-url"; 
      String user  = "user"; 
      String password = "password"; 

      Connection conn = DriverManager.getConnection(url, user, password); 

      return conn; 
     } 

     public Vector<Vector<String>> ExecuteQuery(String query) 
     { 
      Statement stmt = null; 
      ResultSet rs = null; 
      //Vector of vectors for JTable 
      Vector<Vector<String>> data = new Vector<Vector<String>>(); 
      try { 
       //Create new statement 
       stmt = getConnection().createStatement(); 
       //Execute given `query` 
       rs = stmt.executeQuery(query); 


       if (stmt.execute(query)) { 
        rs = stmt.getResultSet(); 
       } 

       //while there are some rows 
       while(rs.next()) 
       { 
        //Create new Vector 
        Vector<String> temp = new Vector<String>(); 
        int numColumns = rs.getMetaData().getColumnCount(); 
        //Put data into that vector 
        for (int i = 1 ; i <= numColumns ; i++) { 
         temp.addElement(rs.getString(i)); 
        } 

        //Add vector to `data` 
        data.add(temp); 
       } 

      } 
      catch (SQLException ex){ 
       // handle any errors 
       System.out.println("SQLException: " + ex.getMessage()); 
       System.out.println("SQLState: " + ex.getSQLState()); 
       System.out.println("VendorError: " + ex.getErrorCode()); 
      } 
      finally { 
       if (rs != null) { 
        try { 
         rs.close(); 
        } catch (SQLException sqlEx) { } 

        rs = null; 
       } 

       if (stmt != null) { 
        try { 
         stmt.close(); 
        } catch (SQLException sqlEx) { } // ignore 

        stmt = null; 
       } 
      } 
      //Return 
      return data; 
     } 
    } 

ファーストJTable。

希望私は:)

関連する問題