Вместо того, чтобы мучиться с настройкой переменных столбцов, создайте простую таблицу базы данных A:
row integer
col integer
content varchar
Это дает вам возможность легко избегать пустых записей, и у вас есть одна строка таблицы базы данных для каждого элемента массива.
У вас есть два варианта:
- Создайте одну строку базы данных для каждого элемента вашего массива, включая нули, или
- Создайте одну строку базы данных для каждого элемента, который не равен нулю.
Для варианта 1 этот код предоставит любой элемент:
private String getElement(int row, int col) {
String result = null;
try {
if(rs.absolute(row*colNumber+col+1))
result=rs.getString("content");
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return result;
}
Для варианта 2 содержимое запрошенного элемента в row,col находится следующим образом:
private String getElement(int row, int col) {
String result = null;
String query = "SELECT * from A where row=? and col=?";
try {
PreparedStatement preps = con.prepareStatement(query);
preps.setInt(1, row);
preps.setInt(2, col);
preps.execute();
rs = preps.getResultSet();
if (rs.next()) {
result = rs.getString("content");
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return result;
}
Очевидно, что вариант 1 обеспечивает более быстрый доступ к элементам. Вариант 2 экономит место в базе данных.
PS: Если у вас есть массив массивов разной длины, вариант 1 не будет работать.
colNumber – это фиксированное количество столбцов вашего массива String.
person
Costis Aivalis
schedule
27.12.2012