This is a really late reply, i know that ;), I just wanted to share my thoughts on db-driven applications using java... I really recommend that you try hiberhate (www.hibernate.org). It gives you an abstraction layer (yay :)) so that you can swap databases easily and aggregate fetched data into object. It's very object orientated and has a query language very similar to SQL (you can also use SQL queries directly if you need to). It lets you write queries like "select p from my.company.Person p where p.sibling.name = "Foobar"". However, Hibernate configuration will introduce you to xml hell if you're not using java 1.5 (in which case you can use annotations, a lot nicer in my opinion). The new EJB 3.0/JEE spec is really good aswell, it gives you concurrency support, storage mechanisms (very similar to hibernate), authorization/authentication and a lot of other stuff that is really useful! If you have time, this is what I would recommend learning. If you like UML and would like to draw large parts of your application instead of writing it (more fun! :) ), try androMDA (www.androMDA.org). It's a really cool tool that genereates all the boilerplate code for you (from an UML diagram) and also makes it a lot easier (not trivial though) to switch target platforms (currently .NET/Java). AndroMDA also supports the XP design paradigm, so you can generate, write some business logic code, test, alter the model, regenereate etc. No fuzz, no magic, it just works. Really cool. Try it out if you have time on your hands. It's tricky to get started, but it gets better. If you feel like the EJB approach is a bit heavyweight, you could try spring (www.springframework.com). It's a bunch of classes helping you with loads of stuff, and it's really useful for most applications in one way or another. It eases JDBC development by simplifying a lot of stuff, and can also help you with RPC, creation and wiring of your objects and lots of other things. In fact, if you choose not to use EJB 3.0, spring can also help you get rid of configuration hell with Hibernate. It's really good in the way that it lets you forget about the hard stuff (getting the connection, connecting, catching exceptions, flushing etc) and lets you focus on the really important code (the queries etc). More correctly, it promotes you to separate these two issues in a clean way. There are tons of utilities and frameworks out there, and I don't know how good you are, but my favourite tool collection is jakarta commons (http://jakarta.apache.org/commons/). There you'll find a huge collection of really useful utilities that saves hours of coding. Can't live without it :)Hope this helps! RegardsAlex