我想将xlsx数据存储到oracle数据库中,我编写代码使用java读取它但是,我无法将它们存储到数据库中,以及如何使用prepareStatement。 这是我的代码阅读
FileInputStream fis = new FileInputStream(
new File("C:\\Users\\wecme\\Desktop\\Writesheet.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet spreadsheet = workbook.getSheetAt(0);
Iterator < Row > rowIterator = spreadsheet.iterator();
while (rowIterator.hasNext())
{
row = (XSSFRow) rowIterator.next();
Iterator < Cell > cellIterator = row.cellIterator();
while ( cellIterator.hasNext())
{
Cell cell = cellIterator.next();
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
System.out.print(
cell.getNumericCellValue() + " \t\t " );
break;
case Cell.CELL_TYPE_STRING:
String s= cell.getStringCellValue();
System.out.print(s+ " \t\t ");
break;
}
}
System.out.println();
}
fis.close();
这里是控制台的输出:
EMP ID EMP NAME DESIGNATION
tp01 Gopal Technical Manager
tp02 Manisha Proof Reader
tp03 Masthan Technical Writer
tp04 Satish Technical Writer
tp05 Krishna Technical Writer
我想将它们存储在数据库中,任何人都可以帮助我。 我为此写了jdbc,但我无法解决它
PreparedStatement ps=cn.prepareStatement("insert into table1 (empId,empName,Designatation) values(?,?,?)");
while (rowIterator.hasNext())
{
row = (XSSFRow) rowIterator.next();
Iterator < Cell > cellIterator = row.cellIterator();
while ( cellIterator.hasNext())
{
Cell cell = cellIterator.next();
//System.out.println(cell);
String sss=cell.toString();
}
}
如何指定像ps.setString(index,sss)这样的精确索引; 请帮帮我。
答案 0 :(得分:-1)
我必须同意11thdimension - 如果你想从excel文件中读取数据并将其加载到db中,那么你可以使用一些工具(也许是从Excel导出数据作为CSV文件),或者你可以为它编写代码 - 我认为您在问题中提供给我们的代码是一个很好的起点。
如果你想将整个xlsx文件存储在某些列中(例如BLOB类型),我认为这对你来说不是一个好习惯(对我而言,这是一个更好的解决方案,只记住db中的url或文件路径)应该有一些流,你读取整个文件,并在该列中将其写为字节。在这种情况下,请查看此主题:
问题不是那么明确,而且还不够具体,所以这个答案太笼统了。