The looks a bit strange. I would definitely change some of those methods to private. The close() for instance. When you call your fetch method, you can create a connection, run your sql, and then close right afterwards.
Normally
you should check if the ResultSet, Statement and Connection are null before trying to close them and put it in a finally block. What if your rs.close throws an exception? The st.close() and con.close() are never called.
Have you tried using the oci oracle drivers rather than the thin client?
Edit: Just adding a link for
ORA JDBC FAQ