Java 使用JDBC在表中动态插入数据
我在mysql数据库中有一个表,在oracle数据库中有另一个表。我正在编写一个实用程序,从一个表中获取数据并插入到另一个表中 下面是我在swing中设计的实用工具 文本区域用于选择查询; 另一个文本区域用于插入查询; 一个叫做加载数据的按钮 现在,如果我单击LoadData,选择Queryshouldnrun并拾取数据。并执行insert查询以插入到表中 注意:因为它是一个实用工具,所以表名是动态的 我现在面临的问题是insert查询。如何动态查找表的desc,以便在运行时使用setString、setLong或ect?可以告诉您有关Java 使用JDBC在表中动态插入数据,java,jdbc,Java,Jdbc,我在mysql数据库中有一个表,在oracle数据库中有另一个表。我正在编写一个实用程序,从一个表中获取数据并插入到另一个表中 下面是我在swing中设计的实用工具 文本区域用于选择查询; 另一个文本区域用于插入查询; 一个叫做加载数据的按钮 现在,如果我单击LoadData,选择Queryshouldnrun并拾取数据。并执行insert查询以插入到表中 注意:因为它是一个实用工具,所以表名是动态的 我现在面临的问题是insert查询。如何动态查找表的desc,以便在运行时使用setStrin
结果集的信息(以及相应的表):
这里是我最近编写的一些代码,用于动态生成一些脚本。查询数据库元数据以获取有关前缀为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"));
}
}
}