【正确答案】1)尽可能使用PreparedStatement。因为它有更高的执行效率、更好的安全性(能防止SQL注入),也有更好的可读性。当然,在使用PreparedStatement的时候,只有使用占位符(?)才能实现高效率及高安全性。
2)尽可能关闭自动提交模式。在获取与数据库的连接Connection的对象后,尽可能关闭事务的自动提交模式,自动提交模式的运行机制如下:每当执行一条SQL语句时,它就马上提交(事务的提交操作也是一个耗时的操作),因此,一条SQL语句可以被看成是一个事务。如果关闭自动提交模式,改为采用显式调用commit方法来提交,可以在执行完多条SQL语句后再调用commit进行提交,从而提高执行效率。
3)尽可能使用数据库连接池。因为连接池是一个非常重要的资源,创建与数据库的连接也是一个耗时的操作,使用数据库连接池能够节约不必要的建立数据库连接的时间,同时还能对数据库连接资源进行很好的管理。
4)当Statement、PreparedStatement、ResultSet等对象使用完成后,应及时调用close方法释放资源。
5)尽可能采用批处理的方式执行SQL语句。JDBC提供了addBatch方法把SQL语句加入到批处理中,然后调用executeBatch方法执行所有的SQL语句,这种方法减少了JDBC与数据库之间的交互次数,因此,具有更好的性能。
6)在调用ResultSet的get方法时,尽可能使用列名而不是列索引,当使用列名后,即使select语句中列的顺序有所调整,也不需要对代码进行修改。在调用getXXX方法时,根据实际的类型选用对应的getXXX方法从而避免类型转换。
7)尽可能使用标准的SQL语句,这样有利于代码在不同的数据库之间进行移植。
【答案解析】