Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JDBC在表中动态插入数据_Java_Jdbc - Fatal编程技术网

Java 使用JDBC在表中动态插入数据

Java 使用JDBC在表中动态插入数据,java,jdbc,Java,Jdbc,我在mysql数据库中有一个表,在oracle数据库中有另一个表。我正在编写一个实用程序,从一个表中获取数据并插入到另一个表中 下面是我在swing中设计的实用工具 文本区域用于选择查询; 另一个文本区域用于插入查询; 一个叫做加载数据的按钮 现在,如果我单击LoadData,选择Queryshouldnrun并拾取数据。并执行insert查询以插入到表中 注意:因为它是一个实用工具,所以表名是动态的 我现在面临的问题是insert查询。如何动态查找表的desc,以便在运行时使用setStrin

我在mysql数据库中有一个表,在oracle数据库中有另一个表。我正在编写一个实用程序,从一个表中获取数据并插入到另一个表中

下面是我在swing中设计的实用工具

文本区域用于选择查询; 另一个文本区域用于插入查询; 一个叫做加载数据的按钮

现在,如果我单击LoadData,选择Queryshouldnrun并拾取数据。并执行insert查询以插入到表中

注意:因为它是一个实用工具,所以表名是动态的

我现在面临的问题是insert查询。如何动态查找表的desc,以便在运行时使用setString、setLong或ect?

可以告诉您有关
结果集的信息(以及相应的表):


这里是我最近编写的一些代码,用于动态生成一些脚本。查询数据库元数据以获取有关前缀为vw_as的所有视图的信息。您应该能够以此为起点来查询要插入的表并获取其定义

DataSource ds = ...;
Connection c = ds.getConnection();
DatabaseMetaData metaData = c.getMetaData();

ResultSet rs = metaData.getTables(null, "dbo", "vw_as%", new String[] { "VIEW" });

while (rs.next()) {
    String tableName = rs.getString("TABLE_NAME"));

    ResultSet rs1 = metaData.getColumns(null, "dbo", tableName, "%");

    while (rs1.next()) {
        String columnName = rs1.getString("COLUMN_NAME"));
    }
  }
}

下面是一个示例,说明
ResultSetMetaData
对象如何告诉您所查询的表:

import java.sql.*;
公共类JDBCQuery{
公共静态void main(字符串参数[]){
连接conn=null;
语句s=null;
试一试{
forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
conn=DriverManager.getConnection(
“jdbc:odbc:Driver={sqlserver};”+
“服务器=。\\SQLEXPRESS;”+
“受信任的连接=是;”+
“数据库=myDb”);
s=conn.createStatement();
s、 executeQuery(“从dbo.SalesSummary中选择*,其中0=1”);
ResultSet rs=s.getResultSet();
ResultSetMetaData rsmd=rs.getMetaData();

对于(inti=1;我非常感谢Gord Thompson。太好了!
DataSource ds = ...;
Connection c = ds.getConnection();
DatabaseMetaData metaData = c.getMetaData();

ResultSet rs = metaData.getTables(null, "dbo", "vw_as%", new String[] { "VIEW" });

while (rs.next()) {
    String tableName = rs.getString("TABLE_NAME"));

    ResultSet rs1 = metaData.getColumns(null, "dbo", tableName, "%");

    while (rs1.next()) {
        String columnName = rs1.getString("COLUMN_NAME"));
    }
  }
}