try{ //解析Excel文件 FileInputStream fis=new FileInputStream(new File("excelFile.xlsx")); XSSFWorkbook workbook=new XSSFWorkbook(fis); XSSFSheet sheet=workbook.getSheetAt(0); //建立数据库连接 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","username","password"); PreparedStatement pstmt=null; //将数据写入数据库 for(Row row:sheet){ pstmt=conn.prepareStatement("INSERT INTO table_name (column1,column2,column3) VALUES (?,?,?)"); pstmt.setString(1,row.getCell(0).getStringCellValue()); pstmt.setString(2,row.getCell(1).getStringCellValue()); pstmt.setString(3,row.getCell(2).getStringCellValue()); pstmt.executeUpdate(); } conn.close(); fis.close(); }catch(Exception e){ e.printstacktrace(); }而如果想将Oracle数据库中的数据导出为Excel文件,则可以使用Apache POI来创建Excel文件,并使用JDBC从数据库中读取数据并写入Excel文件中。具体实现代码如下:
try{ //建立数据库连接 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","password"); PreparedStatement pstmt=null; //从数据库中读取数据 pstmt=conn.prepareStatement("SELECT * FROM table_name"); ResultSet rs=pstmt.executeQuery(); //创建Excel文件 XSSFWorkbook workbook=new XSSFWorkbook(); XSSFSheet sheet=workbook.createSheet("Sheet1"); Row row=sheet.createRow(0); row.createCell(0).setCellValue("column1"); row.createCell(1).setCellValue("column2"); row.createCell(2).setCellValue("column3"); int rowIndex=1; //将数据写入Excel文件 while(rs.next()){ row=sheet.createRow(rowIndex++); row.createCell(0).setCellValue(rs.getString("column1")); row.createCell(1).setCellValue(rs.getString("column2")); row.createCell(2).setCellValue(rs.getString("column3")); } //保存Excel文件 FileOutputStream fos=new FileOutputStream(new File("excelFile.xlsx")); workbook.write(fos); fos.close(); conn.close(); }catch(Exception e){ e.printstacktrace(); }无论是数据的导入还是导出,都需要建立好JDBC连接,并对数据进行相应的操作。同时,需要注意的是,在进行数据库访问操作时,一定要进行事务控制,以保证操作的原子性和一致性。下面是一个简单的事务控制的代码示例:
try{ //建立数据库连接 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","password"); conn.setAutoCommit(false); //取消自动提交事务 PreparedStatement pstmt=null; //进行数据库操作 pstmt=conn.prepareStatement("INSERT INTO table_name (column1,?)"); pstmt.setString(1,"value1"); pstmt.setString(2,"value2"); pstmt.setString(3,"value3"); pstmt.executeUpdate(); pstmt=conn.prepareStatement("UPDATE table_name SET column1='value4' WHERE column2='value2'"); pstmt.executeUpdate(); conn.commit(); //提交事务 conn.close(); }catch(Exception e){ e.printstacktrace(); conn.rollback(); //回滚事务 }在进行事务控制时,首先要将自动提交事务取消掉,然后进行数据库操作,最后再提交事务。如果在操作过程中发生异常,则需要进行回滚操作以撤销之前的数据库操作。数据库事务控制的正确性和健壮性是确保数据操作正确性的基础,因此在实际开发中一定要注意。 总之,Java与Oracle数据库的导入导出操作是开发中经常用到的一个技能,我们需要掌握其基本原理和实现方法,并在实际开发中加以应用,提高工作效率和工作品质。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。