Java,用于创建SQL语句的TextArea

Java,用于创建SQL语句的TextArea,java,sql,database,Java,Sql,Database,我试图制作一个程序,在这个程序中,我可以在文本区域中键入任意sql语句,然后它将执行它。如果它不是查询,那么我将在标签中显示受影响的行;如果它是查询,则显示结果。我知道如何用结果集填充jtable。但是我在查询和非查询部分有点卡住了。你可以选择以下内容: package default; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQ

我试图制作一个程序,在这个程序中,我可以在文本区域中键入任意sql语句,然后它将执行它。如果它不是查询,那么我将在标签中显示受影响的行;如果它是查询,则显示结果。我知道如何用结果集填充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;
        }
    }
包默认值;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.sql.Statement;
导入java.util.Vector;
公共类DBConnector{
私有静态连接getConnection()引发SQLException
{
String url=“您的url”;
字符串user=“user”;
字符串password=“password”;
Connection conn=DriverManager.getConnection(url、用户、密码);
返回连接;
}
公共向量执行(字符串查询)
{
语句stmt=null;
结果集rs=null;
//JTable的向量的向量
向量数据=新向量();
试一试{
//创建新语句
stmt=getConnection().createStatement();
//执行给定的查询`
rs=stmt.executeQuery(查询);
if(stmt.execute(查询)){
rs=stmt.getResultSet();
}
//虽然有一些排
while(rs.next())
{
//创建新向量
向量温度=新向量();
int numColumns=rs.getMetaData().getColumnCount();
//将数据放入该向量

对于(int i=1;我的意思是如果它是
insert
delete
命令,而不是“select”?使用
语句
界面的
execute
方法。它的返回值告诉您是否有
ResultSet
要获取。我正在尝试将一个小型plsql开发人员窗口构建为一个项目,因此可以键入任何sql语句in@DavidWallace老兄,你简直不敢相信事情就这么简单,谢谢