Java,用于创建SQL语句的TextArea
我试图制作一个程序,在这个程序中,我可以在文本区域中键入任意sql语句,然后它将执行它。如果它不是查询,那么我将在标签中显示受影响的行;如果它是查询,则显示结果。我知道如何用结果集填充jtable。但是我在查询和非查询部分有点卡住了。你可以选择以下内容: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
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老兄,你简直不敢相信事情就这么简单,谢谢