You should read up on connection pool to get an idea of how they work. There's hundreds of topics here on SO that pertain to this. A quick google search of "Understanding Java connection pools" brings up a small description of how one of the libraries might work: How Connection Pooling Works
Some more info on this SO thread: How to establish a connection pool
Basically, your client requests come in, you grab a connection from the pool, you do your sql operation, and when you close the connection, it returns it back to the pool. That's the high level.
If you want to combine that with batching, it gets a little trickier, since you would grab the data, insert it into the batch and then trigger the send/commit when you have some predetermined amount of data in the batch.
It really depends on what you want your clients to see, do they need acknowledgement when the record is committed?
With pooling, it's less likely that you will need to use batching, you just need to adjust the connection pool size for your environment.
There's a number of standalone pool libraries (C3PO and DBCP), and a number of the various services (like websphere) already have pooling built in. I believe the Oracle jdbc driver as the ability to do it for you.