I am new to jdbc, closing a Statement is releasing its resources, I am wondering if this will include closing the connection itself.
also If I am connecting to localhost db,
Is creating a new Connection will be costy?
Is creating new Statement will be costy?
Assuming that you're using a decent JDBC driver, closing a statement will only close any opened resultsets and closing a connection will close any opened statements and indirectly also its opened resultsets.
Obtaining a connection is the most expensive task in JDBC. You can improve performance by using connection pooling. When you're developing a webapplication, it's good to know that most self-respected application servers offers JNDI connection pooling out of the box. When you're developing a client application, then you may need to add connection pooling libraries so that you can make use of it. Commonly used ones are Apache Commons DBCP, C3P0 and Proxool