gpt4 book ai didi

java - 创建一个类以从 derby 数据库获取值

转载 作者:行者123 更新时间:2023-12-01 05:18:57 26 4
gpt4 key购买 nike

我创建了一个类来连接到 derby 数据库。在程序中,我创建了表并插入了一些水果名称作为值。我只是想知道如何创建另一个类来获取新数组中的水果名称值。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class FruitDatabase {

public static void main(String[] args) throws Exception {
Connection conn = getConnection();
Statement stmt = conn.createStatement();

stmt.executeUpdate("drop table fruit");
stmt.executeUpdate("create table fruit (name CHAR(15))");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Apple')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Orange')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Banana')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Pineapple')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Mango')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Kiwi')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Grape')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Strawberry')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Pear')");
stmt.executeUpdate("INSERT INTO fruit(name)VALUES('Peach')");
ResultSet rs = stmt.executeQuery("SELECT * FROM fruit");
outputResultSet(rs);

rs.close();
stmt.close();
conn.close();
}

private static void outputResultSet(ResultSet rs) throws Exception {
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
for (int i = 1; i < numberOfColumns + 1; i++) {
String columnName = rsMetaData.getColumnName(i);
System.out.print(columnName + " ");

}
System.out.println();
System.out.println("----------------------");

String array [] = new String [numberOfColumns + 1];

while (rs.next()) {
for (int i = 1; i < numberOfColumns + 1; i++) {
array[i] = rs.getString(i);
System.out.println(array[i]);
}

}

}

private static Connection getConnection() throws Exception {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
String url = "jdbc:derby:MyDbTest;create=true";
return DriverManager.getConnection(url);
}

}

最佳答案

将您声明为私有(private)变量的数组,在静态 block 中对其进行初始化,并为其添加 getter 和 setter 方法。这里没有使用 getter-setter,但这只是为了您的理解。

FruitDatabase.java

public class FruitDatabase {
private static String[] array;

public static String[] getArray() {
return array;
}

public static void setArray(String[] arr) {
array = arr;
}

public static void main(String[] args) throws Exception {
...
}

private static void outputResultSet(ResultSet rs) throws Exception {
...
while (rs.next()) {
for (int i = 1; i < numberOfColumns + 1; i++) {
array[i] = rs.getString(i);
System.out.println(array[i]);
}
setArray(array);
....
}
....
}

然后从另一个类(假设 Display.java)中,您需要创建该类的一个对象,然后您可以访问该数组:

Display.java

public class Display {
public static void main(String[] args) {
String[] newArr = new String[FruitDatabase.getArray().length];
int i=0;
for(String s : FruitDatabase.getArray()){
System.out.println(s);
newArr[i++]=s;
}
}
}

关于java - 创建一个类以从 derby 数据库获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10749319/

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