別のクラスメソッドで作成した多次元配列から使用しようとしています。以下は私の主な方法です:
public class main {
public static void main(String[] args) throws Exception {
sql test = new sql();
String[][] test2 = test.getDb();
System.out.print(test2[0][0]);
}
これが多次元配列を返すクラスです。
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JLabel;
import javax.swing.JTextField;
import com.mysql.jdbc.Statement;
public class sql {
java.sql.Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:8889/deliveryEarn";
String user = "root";
String password = "root";
ArrayList<String> sqlCol1 = new ArrayList<String>();
ArrayList<String> sqlCol2 = new ArrayList<String>();
ArrayList<String> sqlCol3 = new ArrayList<String>();
ArrayList<String> sqlCol4 = new ArrayList<String>();
ArrayList<String> sqlCol5 = new ArrayList<String>();
ArrayList<String> sqlCol6 = new ArrayList<String>();
ArrayList<String> sqlCol7 = new ArrayList<String>();
String sqlArray[][] = new String[7][7];
public sql() {
}
public String[][] getDb() {
try {
con = DriverManager.getConnection(url, user, password);
pst = con.prepareStatement("select * from incomeCalc");
rs = pst.executeQuery();
while (rs.next()) {
sqlCol1.add(rs.getString(1));
int i1=0;
for(String s: sqlCol1){
sqlArray[i1++][0] = s;
}
sqlCol2.add(rs.getString(2));
int i2=0;
for(String s: sqlCol2){
sqlArray[i2++][1] = s;
}
sqlCol3.add(rs.getString(3));
int i3=0;
for(String s: sqlCol3){
sqlArray[i3++][2] = s;
}
sqlCol4.add(rs.getString(4));
int i4=0;
for(String s: sqlCol4){
sqlArray[i4++][3] = s;
}
sqlCol5.add(rs.getString(5));
int i5=0;
for(String s: sqlCol5){
sqlArray[i5++][4] = s;
}
sqlCol6.add(rs.getString(6));
int i6=0;
for(String s: sqlCol6){
sqlArray[i6++][5] = s;
}
sqlCol7.add(rs.getString(7));
int i7=0;
for(String s: sqlCol7){
sqlArray[i7++][6] = s;
}
}
}
catch( Exception E ) {
System.out.println( E.getMessage() );
}
return sqlArray;
}
}
これは、MySQL データベースのスクリーンショットです。
編集:質問が明確ではなかったようです。謝罪します。次の行で実行時エラーが発生します。
System.out.print(test2[0][0]);
私は何を間違っていますか?また、正しい OOP のために、コンストラクターまたはメソッドを使用してデータベースからプルまたは入力する方が良いですか? これは私の最初のプログラムです。
Edit2:ここにエラーがあります:
スレッド「メイン」での例外 java.lang.NullPointerException at main.main(main.java:17)