You should use glGenBuffers to get the VBO handle.
glBufferData uploads the float buffer data to your VBO. You don't need to call it every frame unless your data is changing every frame. In your render function, you just need to enable client states, setup vertex pointers, and draw arrays.
VBOs is core as of GL 1.5 so you really should not be using ARB unless you are targeting computers from the 90s.
Also I'm not sure why you are flipping buffers like that. You can read more about buffers here:https://github.com/mattdesl/lwjgl-basics/wiki/Java-NIO-Buffers