gpt4 book ai didi

java - 使用 JDBC 动态向表中插入数据

转载 作者:行者123 更新时间:2023-11-30 04:10:10 26 4
gpt4 key购买 nike

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

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

用于选择查询的文本区域;另一个用于插入查询的Textarea;一个名为加载数据的按钮。

现在,如果我单击加载数据,则选择应运行查询并获取数据。并执行插入查询插入到表中。

注意:由于它是一个实用工具,因此表名称是动态的。

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

最佳答案

以下示例说明 ResultSetMetaData 对象如何告诉您有关所查询的表的信息:

import java.sql.*;

public class JDBCQuery {

public static void main(String args[]) {
Connection conn = null;
Statement s = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(
"jdbc:odbc:Driver={SQL Server};" +
"Server=.\\SQLEXPRESS;" +
"Trusted_Connection=yes;" +
"Database=myDb");
s = conn.createStatement();
s.executeQuery("SELECT * FROM dbo.SalesSummary WHERE 0 = 1");
ResultSet rs = s.getResultSet();
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
System.out.println(String.format("-- Column %d --", i));
System.out.println(String.format("Column name: %s", rsmd.getColumnName(i)));
System.out.println(String.format("Database-specific type name: %s", rsmd.getColumnTypeName(i)));
System.out.println(String.format("Column size (DisplaySize): %d", rsmd.getColumnDisplaySize(i)));
System.out.println(String.format("java.sql.Type of column: %d", rsmd.getColumnType(i)));
System.out.println();
}
} catch( Exception e ) {
e.printStackTrace();
} finally {
try {
if (s != null) {
s.close();
}
if (conn != null) {
conn.close();
}
} catch( Exception e ) {
e.printStackTrace();
}
}
}
}

这是输出:

-- Column 1 --
Column name: Item
Database-specific type name: nvarchar
Column size (DisplaySize): 255
java.sql.Type of column: -9

-- Column 2 --
Column name: FiscalYear
Database-specific type name: int
Column size (DisplaySize): 11
java.sql.Type of column: 4

-- Column 3 --
Column name: Quarter
Database-specific type name: int
Column size (DisplaySize): 11
java.sql.Type of column: 4

-- Column 4 --
Column name: Sales
Database-specific type name: money
Column size (DisplaySize): 21
java.sql.Type of column: 3

可以获取 java.sql.Types 的完整列表 here .

关于java - 使用 JDBC 动态向表中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com