CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

一个jdbc的问题

楼主step123(策马扬鞭)2004-11-03 22:08:38 在 Java / J2EE / EJB / JMS 提问

最近做一个jsp的小系统,数据库是用的SQL   server2000,我的系统配置是赛扬2G,256M内存,先下了微软的sqlserver的jdbc驱动,安装后设置好路径,并将三个jar同时拷贝到tomcat的lib目录中,运行倒没出什么问题,但发现运行速度奇慢(与以前运行asp相比).后来改用odbc-jdbc桥接,感觉速度快多了,可是好象一般推荐用第一种方法,可它的执行速度那么慢,这是怎么回事,请大侠指点一下,谢谢。那做项目时,应该哪种jdbc连接方式为好呢。 问题点数:20、回复次数:10Top

1 楼hsboy(PHP it!)回复于 2004-11-03 22:12:23 得分 0

是启动后第一次运行慢还是每次都很慢?数据源一开始要初始化的,而且程序第一次运行的时候要装载,要花时间嘛Top

2 楼chunhuizhao(第三范式)回复于 2004-11-03 22:39:58 得分 0

推荐用第一种方法,第二种方法不能跨平台Top

3 楼applecjn(苹果^-^)回复于 2004-11-04 01:14:25 得分 0

jdbc   推荐Top

4 楼Net8Java(男将╭ァM'r杜)回复于 2004-11-04 02:33:39 得分 0

当然是第一种方法好~!Top

5 楼Net8Java(男将╭ァM'r杜)回复于 2004-11-04 02:35:44 得分 7

如果是   第1次运行慢,那很正常啊!不光数据源要初始化,jsp也是以servlet的形式在运行的,servlet是长驻内存的~第一次运行慢,后面就会快多了!不用每次调用就创建一个实例。Top

6 楼pennymxb(马晓)回复于 2004-11-04 09:40:58 得分 8

5楼有理,强烈推荐JDBC,J-O桥有很多局限,现在已经很少用了,但是影响速度的问题有很多,需要楼主仔细研究,但是不能轻率的放弃相对先进的技术啊!!  
   
  推荐楼主学习一下HIBERNATE  
   
  共同进步!!Top

7 楼step123(策马扬鞭)回复于 2004-11-04 09:44:25 得分 0

你们说的第一次,是运行程序第一次,还是tomcat运行第一次?两种都试了感觉运行速度还是很慢,打开一个带有数据库连接的jsp文件,本机运行都要20秒,且好象不稳定,同样的页面odbc桥接只须两秒,真受不了。且有的页面只有后都才能打开。而且我装的已经是微软sql   server   sp3   jdbc驱动了。  
   
  我的是win2000   adv   server.jdbc的连接代码是写在一个javabean里面,jsp要连接数据库就引用这个bean。  
  其中第一种方式的javabean代码如下:  
  package   firm;  
  import   java.sql.*;  
   
  public   class   firm  
  {  
          Connection   conn   =   null   ;  
          private   Statement   stmt=null;  
          ResultSet   rs=null;  
          String   url   =   "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=I_d_system";  
           
      public   firm()  
      {    
      try  
        {    
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");      
                }  
         
      catch(ClassNotFoundException   e1)  
      {  
        System.err.println("firm():"+e1.getMessage());  
        }  
    }  
           
          //<!--建立数据库连接及定义数据查询-->  
        public   ResultSet   executeQuery(String   sql)  
          {  
                    rs=null;  
                  try  
                  {  
                  conn=DriverManager.getConnection(url,"sa","sa");//创建数据库连接对象    
                          stmt=conn.createStatement();  
                          rs=stmt.executeQuery(sql);  
                  }  
                  catch(SQLException   ex)    
                  {  
                  System.err.println("aq.executeQuery:"+ex.getMessage());  
                  }  
                  return   rs;  
          }  
          //<!--定义数据操作-->  
          public   void   executeUpdate(String   sql)  
          {  
                  stmt=null;  
                  rs=null;  
                  try  
                  {  
                  conn=DriverManager.getConnection(url,"sa","sa");  
                  stmt=conn.createStatement();  
                  stmt.executeQuery(sql);  
                  stmt.close();  
                  conn.close();  
                  }  
                  catch(SQLException   ex)  
                  {  
                          System.err.println("aq.executeQuery:"+ex.getMessage());  
                  }  
          }  
          //<!--关闭数据库连接-->  
          public   void   closeStmt()  
          {  
                  try  
                  {  
                  stmt.close();  
                  }  
                  catch(SQLException   e)  
                  {  
                  e.printStackTrace();  
                  }  
          }  
          public   void   closeConn()  
          {  
          try  
          {  
          conn.close();  
          }  
          catch(SQLException   e)  
          {  
          e.printStackTrace();  
          }  
          }  
    }  
   
  麻烦大虾帮我看一下,谢谢。  
  Top

8 楼yangjiyue(yangjiyue)回复于 2004-11-04 09:44:34 得分 0

upTop

9 楼NetSniffer(扑克)回复于 2004-11-04 11:15:29 得分 0

却是有这个问题Top

10 楼sailor11(sailor)回复于 2004-11-05 14:13:42 得分 5

你不要每次执行操作都新建一个连接呢,还有不要用Statement对象,改用PreparedStatement对象执得操作。Top

相关问题

  • jdbc
  • jdbc!
  • jdbc
  • JDBC
  • jdbc for domino:
  • jdbc drivers????????????????????????????
  • jdbc for sqlServer2000
  • jdbc for sqlServer2000
  • JDBC_ODBC
  • JDBC和ORACLE

关键词

  • jdbc
  • 数据库
  • 连接
  • sa
  • jsp
  • sql
  • null
  • server
  • 运行
  • stmt

得分解答快速导航

  • 帖主:step123
  • Net8Java
  • pennymxb
  • sailor11

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo