Home » Other » General » Moving into Java need advice
Moving into Java need advice [message #449147] Sat, 27 March 2010 07:01 Go to next message
Aussiedev
Messages: 4
Registered: March 2010
Location: Australia
Junior Member
Hi all,

I didn't know where else to put this so I'm using the general forum.

I've been a PL/SQL developer for 11 years now, I started on version 7 and am now working in version 10g. I've picked up some forms in the last year and a half but obviously the future is java.

I've never had any reason to write any java in the past but perhaps I should have started learning it earlier. nevertheless I want to teach myself.

I guess my question is twofold.

I have no Idea practically how java is used relation to oracle in the real world. I'm still of the opinion that most applications benefit from having a large amount of business logic held close to the database in PL/SQL packages. Could you briefly give me some examples as to why a java program should be anything except a thin data access procedure with all the data manipulation done by the database itself? e.g. are java stored procedures more common than external java applications that interact with oracle (I could be seriously mis-understanding something here).

The second part is: If I want to become proficient with java in relation to oracle databases, can you recommend any good tutorials or books that I could start with. I guess I'm specifically looking at middle-tier or low-level java programming rather than front end type stuff.

I apologise for my ignorance, and sorry if this has been asked before - I did a brief search and couldn't seem to find anything.

By the way, I have read through this (can't post links as this is my first post):
download.oracle.com/docs/cd/B19306_01/java.102/b14187/chone.htm

but am wondering how to proceed from there.

Thank you in advance.

[Updated on: Sat, 27 March 2010 07:10]

Report message to a moderator

Re: Moving into Java need advice [message #449227 is a reply to message #449147] Sun, 28 March 2010 07:00 Go to previous messageGo to next message
Kevin Meade
Messages: 2103
Registered: December 1999
Location: Connecticut USA
Senior Member
I too have pondered the question of learning JAVA. I have concluded that I do not wish to do that kind of work and so have have only learned as much as I need to tell my JAVA teams how to work with the Oracle database. I figure it is best to let the JAVA experts write the JAVA code and let the database experts write the database code.

In my experience, the most successful applications at my company that are written in JAVA are the ones that avoided doing any real database work. More specifically, these applications demanded in the very begining that a database package be written through which they could interact with the database. Doing so let them define an API and code to the API without having to worry about what the database looked like. This has many advantages, but one that seems to play out every time is speed of delivery. Because the JAVA teams have an API to write to, they do not have to wait for database design work to be done before they can start doing real coding, especially if they have their database person provide stubbed API calls that return bogus but valid data. Getting the JAVA team developing and testing early on goes a long way to making dates.

Conversly in my company, those projects that encouraged their JAVA applications to interact with the database directly have in every case been late, over budget, had more errors day one, and expensive to change when ever the database under it was modified.

The trick to getting it right seems to be having a database or data architecture position that understands two things:

1) the value of getting into the planning stages early so they can discuss with project managment and later JAVA developers, their position on this subject.

2) having a competant PLSQL developer who can provide an API fast with stubbed calls so that development teams can get started early on.

As for what constitutes logic that should be in the database and what should be somewhere else... This debate will never end. I suggest that if the business rule is about process flow, it belongs in the application layer, but if it requires data to be enforced then it belongs in the database. But this is just one man's opinion.

Good luck, Kevin
Re: Moving into Java need advice [message #449502 is a reply to message #449147] Tue, 30 March 2010 01:21 Go to previous message
Frank
Messages: 7901
Registered: March 2000
Senior Member
I actually took the step and moved (for the time being?) to The Other Side.
I have done some pure java projects now (I work as a contractor), and I noticed that my knowledge of how the database/SQL works has helped me and the project a lot. (all Oracle database backed projects).
I think the/my real future lies in a mix of the two: the pure Java approach will in the long term prove to be not a viable option. I really hope Java people will one day see this too, instead of always blaming the database for performance issues..
I think that some things are better done in the db, some things are better done in Java.
The old mantra "keep everything in the database, because your frontend will change"? I don't believe in it any more than the other mantra "the database is for storing data and nothing else".
Previous Topic: oracle licensing doubt
Next Topic: SQL injection
Goto Forum:
  


Current Time: Fri Mar 29 10:53:16 CDT 2024