What is the difference between callable statements, prepare statements , createstatements?

When you use JDBC and Java, you frequently come across the terms known as callable statements, prepare statements & createstatements. Lets try to find out what are they and when to use them.