--print CONVERT(varchar(50),getdate(),126)
/*
执行创建连接及读取一行数据的操作,并重复100次.
jdbc odbc
2004-07-05T15:13:51.913
2004-07-05T15:13:57.200
= 5.287jdbc - Microsoft SQL Server 2000 Driver for JDBC
2004-07-05T15:14:39.740 
2004-07-05T15:14:45.030
=5.290ADO
2004-07-05T15:27:14.447
2004-07-05T15:27:17.040
= 2.593
*/执行创建连接及读取一个表数据,并遍历一次的操作,并重复100次.
jdbc odbc
运行了差不多十分多钟(在我发贴并开始),结果还没出来jdbc - Microsoft SQL Server 2000 Driver for JDBC
2004-07-05T15:34:34.010
2004-07-05T15:35:07.327
=33.317
2004-07-05T15:30:17.140
2004-07-05T15:30:26.543
=9.403
*/
========下面是测试代码===============
for (int l=0;l<=100;l++)
            {
                Connection cnt = gConts.getOdbcConnection("ODBC_MSSQL","sa","sa") ; //取得一个odbc连接(里面只有两三句语句)                 //Connection cnt = gConts.getMsSqlConnection("jun","pub","sa","sa"); //取得一个msSql连接,(里面只有两三句语句) 
                Statement st =cnt.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
                ResultSet rs = st.executeQuery(gSelect);                while (rs.next())
                    for(int i=1;i<=38;i++)
                    {
                        String gfield = Integer.toString(i);
                        gfield ="Go" + (gfield.length()>=2?gfield:"0"+gfield);
                        gvalue =rs.getString(gfield);
                    }
                    if (l==0 || l==100)
                        System.out.println("当前时间:" + gvalue);// rs.getString("ftime"));
            }

解决方案 »

  1.   

    ADO自己就有连接池,不需要程序员再做连接池,
    但是java程序员必须使用连接池,JDBC本身不含连接池
      

  2.   

    用jtds试试
    http://sourceforge.net/project/showfiles.php?group_id=33291
      

  3.   

    我这不是为作测试循环而作测试的.
    在一个应用中,访问数据库肯定是最频繁的.就算用了连接池也有可能创建上百多个连接.(这个连接我正在考虑使用全局变量,不知行不行?)取得ResultSet后也要读取出来进行运算啊,这个操作比创建连接更加频繁n倍了.性能稍差,整体上就有很大的差别了.