} finally {
// 7、关闭对象,回收资源
if (rs != null) { //关闭结果集对象
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) { // 关闭操作对象
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) { // 关闭连接对象
try {
if (!conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
76、Statement和PreparedStatement有什么区别?哪个性能更好?
与Statement相比:
①PreparedStatement接口代表预编译的语句,它主要的优势在于可以减少SQL的编译错误并增加SQL的安全性(减少SQL注射攻击的可能性);
②PreparedStatement中的SQL语句是可以带参数的,避免了用字符串连接拼接SQL语句的麻烦和不安全;
③当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势,由于可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句时就会很快(不用再次编译和生成执行计划)
77、使用JDBC操作时,如何提升读取数据的性能?如何提升更新数据的性能?
1. 使用数据连接池(Connection Pool), 避免使用DriverManager.getConnection。2. 合理的配置数据连接池参数,设置数据连接池的初始大小,最大连接数,连接超时时间等。3. 选择合适的事务等级,按照不同的操作类型选择不同的事务等级。4. 及时关闭Connection,不关闭的话会严重影响系统的性能,甚至造成系统罢工。5. 优化Statement1) 选择合适的Statement, 根据不同的操作选择Statement, PreparedStatement 或者 CallableStatement, 具体选择哪个可以通过搜索引擎了解。2) 尽可能的使用batch, 这样可以减少调 用JDBC的次数。 具体的方法是使用statement.addBatch("your sql") 添加batch, 然后执行statement.executeBatch()来一起执行。3) Statement执行完毕后关闭Statement6. 优化你的SQL, 尽量减少你的结果集,不要每次都"select * from XXX"7. 使用一些缓存工具进行缓存,特别是大数据量大访问量的系统,合理的缓存往往会显著的提高系统的
78、在进行编程时,连接池有什么作用?
由于创建连接和释放连接都有很大的开销(尤其是服务器不在本地时,每次建立连接都需要进行TCP的三次握手,释放连接需要进行TCP四次握手,造成的开销是不可忽视的)。
为了提升系统访问的性能,可以事先创建若干连接置于连接池中,需要时直接从连接池获取,使用结束时归还连接池而不必关闭连接,从而避免频繁创建和释放连接所造成的开销,这是典型的用空间换取时间的策略(浪费了空间存储连接,但节省了创建和释放连接的时间)。
80、事务的ACID是指什么?
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-61031-21.html
倒是身边守着世界最大的市场
官二代吧
有人需要正品的
最爱桃子