Without going into too many details, since you can get the full story if you search this forum, To communicate with a database the programme needs to know how to talk to that particular brand of DB, which is where Drivers come in. There are a few ways to set up drivers, but they mostly require installing extra software on the clients machine, which isn't always possible or convenient. Hence the Type-4 'thin' driver, which is a Java-only solution for talking to the DB and can be bundled with the rest of the application. There are still disadvantages to using the Type-4 driver, but on the whole it is good.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com