Java 创建一个类以从derby数据库获取值
我创建了一个类来连接derby数据库。在程序中,我创建了表并插入了一些水果名称作为值。我只是想知道如何创建另一个类以在新数组中获取水果名称值Java 创建一个类以从derby数据库获取值,java,arrays,derby,Java,Arrays,Derby,我创建了一个类来连接derby数据库。在程序中,我创建了表并插入了一些水果名称作为值。我只是想知道如何创建另一个类以在新数组中获取水果名称值 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; public class FruitDatabase {
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);
}
}
将声明为私有变量的数组,在静态块中初始化它,并为其添加getter和setter方法。这里没有使用getter setter,但这只是为了您的理解
FruitDatabase.java
我没有完全理解这个问题?是否要使用select查询从数据库中获取水果名称?这就是你要问的吗?实际上,这是我的导师编写的soem代码。我被要求在屏幕上随机显示水果名称。我已经运行了这个程序,所有的值都存储在一列中。我想创建另一个类,从上述程序的数组中获取值。非常感谢mtk,让我试试。我希望我能做到!嗨,mtk,谢谢你的帮助。事实上,我对java非常陌生。我只是不知道我应该把第一部分的代码放在哪里。这个作业对我来说很难。我看到了这个错误,因为outputResultSet是一个静态方法,我们不能按原样使用上面的代码。将更新.C:\Users\bauyeung\Documents\JCreator LE\MyProjects\Hangman\src\FruitDatabase.java:32:错误:非静态变量无法从静态上下文引用此变量。此数组=数组;^Display.java的1个错误和以下错误
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);
....
}
....
}
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;
}
}
}