Connection what = DbResource.getInstance().DbConnect(); //DelegatingConnection erg = (DelegatingConnection)what; //System.out.println("wtf? " + erg.getClass()); Connection con = what.getMetaData().getConnection(); System.out.println("con class: "+con.getClass()); /* if (what instanceof DelegatingConnection) { con = ((DelegatingConnection) what).getInnermostDelegate(); } else { con = what; } **/ String sql = "INSERT INTO super_files (file_id, filedata) VALUES (super_files_seq.nextval, EMPTY_BLOB())"; Statement stmt = con.createStatement(); /* ResultSet lol = stmt.getGeneratedKeys(); while (lol.next()) { System.out.println("lol? "+lol.getInt(1)); } */ sql = "SELECT MAX(file_id) FROM super_files"; Statement stmt3 = con.createStatement(); ResultSet res2 = stmt3.executeQuery(sql); int id = 0; if (res2.next()) { id = res2.getInt(1); } res2.close(); /* String sql = "SELECT * FROM (" + "SELECT ROW_NUMBER() OVER (ORDER BY chart_id ASC) AS rn," + "chart_id,title,description,screenshot_id,thumbnail_id,votes,rating " + "FROM super_charts" + ") WHERE rn > "+offset+" AND rn <= "+(offset+count); */ con.setAutoCommit(false); //sql = "SELECT file_id,filedata FROM (SELECT file_id,filedata,ROW_NUMBER() OVER (ORDER BY file_id DESC) AS rn FROM super_files ORDER BY file_id DESC) WHERE rn > 0 AND rn <= 1"; sql = "SELECT file_id,filedata FROM super_files WHERE file_id = "+id;//+" for update"; //sql = "SELECT file_id FROM super_files"; Statement stmt2 = con.createStatement(); System.out.println("stmt2 class: "+stmt2.getClass()); stmt.close(); ResultSet oRS = stmt2.executeQuery(sql); System.out.println("MOTHERFUCKING RESULT" + oRS.getClass()); /* OracleResultSetImpl oRS = null; oRS = (OracleResultSetImpl) */ /* org.apache.tomcat.dbcp.dbcp.DelegatingResultSet hum = (org.apache.tomcat.dbcp.dbcp.DelegatingResultSet)stmt2.executeQuery(sql); System.out.println(hum.getClass()); //ResultSet oRS = ((org.apache.tomcat.dbcp.dbcp.DelegatingResultSet)stmt2.executeQuery(sql)).getInnermostDelegate(); OracleResultSet oRS = (OracleResultSetImpl)hum.getInnermostDelegate(); System.out.println(oRS.getClass()); */ //OracleResultSet oRS = (OracleResultSet)res; /* if (con.isClosed()) { System.out.println("oops!"); } ResultSet rs = null; try { rs = stmt2.executeQuery(sql); } catch (Exception e) { e.printStackTrace(); } System.out.println(rs.getClass()); OracleResultSet oRS = (OracleResultSet)rs; */ //ResultSet res = stmt2.getResultSet(); int key = 0; if (oRS.next()) { //key = res.getInt(1); /* System.out.println("in if: "+oRS.getClass()); if (!(oRS instanceof oracle.jdbc.driver.OracleResultSetImpl)) { System.out.println("yup"); } else { System.out.println("nope"); } oracle.jdbc.driver.OracleResultSetImpl blah = (oracle.jdbc.driver.OracleResultSetImpl)oRS; */ BLOB fileData = ((OracleResultSet)oRS).getBLOB("filedata"); int bufferSize = fileData.getBufferSize(); byte buffer[] = new byte[bufferSize]; OutputStream os = fileData.getBinaryOutputStream(); int bytesRead = 0; while ((bytesRead = in.read(buffer)) != -1) { os.write(buffer, 0, bytesRead); System.out.println("GRRRRRR"); } in.close(); os.close(); } stmt2.close(); //res.close(); con.commit(); return key;