I'd like to add one more advantage in the use of a JNDI Data Source: if the connection properties change (say, the database is migrated to another machine, and everybody forgets to warn you beforehand...), you don't need to change and/or redeploy your application or its config - the settings are changed in the data source.
Besides, there's the possibility that many other apps and services use the same data source and, again, you only need to change the connection setting in one place, instead of the config files of said apps and services.
[]'s, Renato.