Я читаю данные из таблицы Excel и использую Java, пытаясь установить эти значения в базу данных.Моя таблица Excel имеет 6 столбцов и 170 строк.Я сделал класс ExcelDataModel и mathod, в котором я прохожу таблицу Excell, но теперь я застрял на том, как передать аргументы в BatchPreparedStatement.Это мой код:
@Override
public void getExcell2() {
final String PATH = "C:\\Workspace\\zaposlenici.xlsx";
try {
Workbook workbook = WorkbookFactory.create(new File(PATH));
Sheet sh = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sh.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
//how to pass arguments from one row to preparedStatement?
jdbcTemplate.batchUpdate("INSERT INTO INS_RAZNO.ZAPOSLENICI_TEST VALUES (?, ?, ?, ?, ?, ?)", new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
ExcelDataModel ex = new ExcelDataModel();
ps.setString(1, ex.getIme());
ps.setString(2, ex.getPrezime());
ps.setString(3, ex.getOdjel());
ps.setString(4, ex.getSlozenostPosla());
ps.setString(5, ex.getStarost());
ps.setString(6, ex.getMjesecniOD());
}
@Override
public int getBatchSize() {
return 0;
}
});
}}
} catch (EncryptedDocumentException | InvalidFormatException | IOException e) {
e.printStackTrace();
}
}
А вот мой код ExcelDataModel:
public class ExcelDataModel {
private String ime;
private String prezime;
private String odjel;
private String slozenostPosla;
private String starost;
private String mjesecniOD;
public String getIme() {
return ime;
}
public void setIme(String ime) {
this.ime = ime;
}
public String getPrezime() {
return prezime;
}
public void setPrezime(String prezime) {
this.prezime = prezime;
}
public String getOdjel() {
return odjel;
}
public void setOdjel(String odjel) {
this.odjel = odjel;
}
public String getSlozenostPosla() {
return slozenostPosla;
}
public void setSlozenostPosla(String slozenostPosla) {
this.slozenostPosla = slozenostPosla;
}
public String getStarost() {
return starost;
}
public void setStarost(String starost) {
this.starost = starost;
}
public String getMjesecniOD() {
return mjesecniOD;
}
public void setMjesecniOD(String mjesecniOD) {
this.mjesecniOD = mjesecniOD;
}
}
Я не знаю, как передать эти аргументы в readyStatement.В основном, как сформировать данные, чтобы они стали аргументами?Есть идеи?Спасибо!