作者: 赵杨 笔名:bootcool
[bootcool@263.net,bootcool@163.net]
美丽而温暖的昆明其实很适合做冷静的思考
进一步提高JDBC应用程序的性能(三)
三: 优化数据库连接
在优化Java编写的程序时,对象重用是一个经常使用的方法。其中关键的一点,就是要尽量的重用一个已有的对象,而不是反复的创建一个新的对象。这样不仅能减少对内存的消耗,也降低了程序因为不断创建新对象而导致内存溢出的情况。由于建立一个数据库连接或者撤销一个连接都是代价昂贵的操作,所以重用一个Connection就是理所当然的了。我们有两种方式重用一个Connection:
|
方法 |
方法说明 |
使用环境 |
|
1 |
为每个用户建立一个单独的连接,并反复使用该连接创建语句,执行相关的数据库操作。 |
每个用户必须经过验证才能使用该连接。 |
|
2 |
建立连接池 |
多用户 |
(表 5)
我们使用完一个连接后一定要将其关闭,否则可能会因为连接资源耗尽,而导致程序性能降低,甚至使程序崩溃。
关闭联接有以下四种方式:
(1):不关闭连接
(2): // ……
Connection con = DriverManager.getConnection(url,user,password);
con = null;
// ……
(3): // ……
Connection con = DriverManager.getConnection(url,user,password);
con.close();//显示的关闭连接
// ……
(4):// ……
Connection con = DriverManager.getConnection(url,user,password);
con.close();//显示的关闭连接
con = null;
// ……
下面我们给出一些测试数据,通过比较我们不难得出关闭连接的正确方式:
首先我们给出测试程序,我们创建100个线程,每个线程都各自获得1个数据库连接。这里的每个线程就好比一个希望连接数据库的用户。
TestJdbc.java
import java.sql.Connection;
import java.sql.DriverManager;
public class TestJdbc {
public TestJdbc() {
}
public void connect(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
}
catch(Exception ex){
ex.printStackTrace();
}
//创建100个线程
for(int i=0;i<100;i++){
MakeConnection makeConnect = new MakeConnection();
makeConnect.setName(""+i+"");
makeConnect.start();
}
}
public static void main(String args[]){
TestJdbc test = new TestJdbc();
test.connect();






