Buenas, como nadie te ha contestado aún, me animo a darte mi inexperta opinión (nunca hice un juego jeje)...
Imagino que lo que pretendes es hacer un juego online en el que los jugadores comparten datos (no un juego cooperativo offline).
Si no me equivoco, por favor que alguien me corrija si digo alguna burrada, lo que deberías hacer es crearte dos ejecutables para tu juego, uno será el programa cliente con el que jugarán tus jugadores y otro el programa servidor, que controlará todas las interacciones de estos jugadores.
Para ello como dices debes tener una base de datos en el lado servidor y que sea controlada por tu programa servidor, que es el que recibe las peticiones de los clientes, valida si esos datos son correctos y si todo está bien hace la inserción/modificación/borrado en la base de datos.
Con un ejemplo:
Un guerrero en tu juego mata un monstruo. El programa cliente envía información al programa servidor, indicándole qué jugador es y qué monstruo ha matado (y probablemente muchas más cosas). Tu programa servidor consulta en base de datos cuánta experiencia proporciona ese monstruo y actualiza en el registro de tu guerrero sus puntos de experiencia, sumándole los que correspondan y pongamos que sube de nivel. Cuando el programa cliente del brujo vuelva a pedir los datos del guerrero a la base de datos ya estarán actualizados y el brujo verá al guerrero con un nivel más del que tenía antes.
Por descontado todas las operaciones en base datos pienso que deberían ser con transacciones para evitar problemas de integridad en el futuro.
Todo esto pienso que puedes hacerlo desde el jar, aunque todo depende de cómo tengas estructurado tu juego.
Desde mi punto de vista, todos los accesos a bbdd deberían ser desde el lado servidor. Desde el programa cliente solamente se harían conexiones a tu programa servidor con sus peticiones.
Espero haberte servido de ayuda, aunque sea un poco...
A ver si alguien más puesto nos aclara cómo debería hacerse todo esto