Yes, it's probably a problem with your double buffering. You need to add the following code after disposing the Graphics object:
The show method flips the buffer. When you create the BufferStrategy with the createBufferStrategy method, make sure you call it with an argument of 2. That makes it so that it's double buffered. 1 buffer would just be the regular screen buffer. 2 buffers gives you the regular screen buffer plus 1 that you can switch with. When you draw to the Graphics object, you're drawing to the off-screen buffer. The show method waits for the vertical retrace and then swaps the two buffers, causing whatever you drew to be displayed without flicker.
You don't need to do your own double buffering by creating dbImage. You can just draw straight to the Graphics object from the BufferStrategy. The only reason I would ever have something like dbImage is if I had to do some kind of image effect to the screen before I displayed it. You would still need the double buffer then because Java gives you no way to wait for the vertical retrace yourself.