To start out: I agree with you that William Brandl's piece leans more towards convenience rather than security. I might even go as far as saying that he is wrong when saying that storing the credentials in a file is the only way to go. Atleast when he leaves out any part regarding encryption. The link he provides to the CWE-259 article even specifically says that:
Username and password information should not be included in a configuration file or a properties file in plaintext as this will allow anyone who can read the file access to the resource. If possible, encrypt this information and avoid CWE-260 and CWE-13.
The fact is, no matter what you decided to do, an attacker with access to your files will be able to steal your credentials.
Since you are running the server with a low privileged user, with restricted access and a strong password, you're generally pretty safe. As long as you lock down all the users, give your database user only the minimum privileges required, etc. you probably won't get into any trouble.
You might want to consider storing the credentials in a separate file, just for your own convenience. That's because you can then easily swap in and out new credentials if you ever choose to change up the database. This way, you don't have to recompile your source.
You could also encrypt the credentials stored in that separate file. This will require your code to decrypt the key however, meaning that the decryption-key is in the compiled Java files. This is really just security through obscurity (e.g. a false sense of security), and honestly doesn't add much. It will however increase the difficulty a little, instead of just a plaintext username and password.
The only thing I can suggest to make it more secure, avoiding hardcoding and storing the credentials in a separate file, is to provide the credentials at startup. This will be more cumbersome from a technical perspective (e.g. you will have to manually restart the server every time it goes down), but will at least remove all the problems regarding where to store the credentials.
However, the credentials will be stored in memory. So if an attacker really wants to get the credentials, a memory dump might be all it takes, regardless of where you store the credentials.
I say, for your own convenience, store the credentials in a file, but don't be afraid if you feel like keeping the credentials in the source code. (Just watch out for programmers reviewing your code, as it's bad practice ;-) ). Again, just make sure to monitor your server, make sure you apply a least-privilege-kind of policy on your users and services, and make sure all credentials are unique and strong.
For future readers; This isn't to say that you shouldn't care about how you do credentials management. A lot of frameworks and languages provide ways to encrypt and secure your credentials, and following best practices is always encouraged. But the fact of the matter is that if someone has access to your files, you are generally out of luck. So protect your files!