This would be Crystal version based (something you should always supply when asking technical questions), and based on how the data is being populated in the report.
If you're passing a record set to the report, then using a Java ODBC connection in your code should be fine.
If you're using CR 8.5 or below and going directly against an Oacle database from within Crystal (not your Java code), do NOT use the Oracle supplied ODBC driver, it will cause numerous problems, some of which include decimals in the wrong location, incorrect number of rows, etc. I would suspect that a JDBC connection might have the same difficulties, but since Crystal has a native connection to Oracle, which is the fastest way to return data, just use that.
Hope this helps to clarify.
-k