CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

如何写个JavaBean实现数据库的共享连接?高手看过来

楼主moneyhui(子安)2005-08-02 16:38:37 在 Java / Web 开发 提问

刚开始学java,发现很多书上写的数据库连接bean都是生成一个新进程,这样一来用户一多迟早会把服务器的资源耗尽的,可以用tomcat的连接池,可是我不知道改怎么做???  
  给个例子!谢谢了 问题点数:50、回复次数:1Top

1 楼108041217(josso)回复于 2005-08-02 17:46:19 得分 50

public   class   DBConnection   {  
  private   static   DataSource   ds;  
  private   Connection   conn;  
  private   static   Log   log=LogFactory.getLog(DBConnection.class.getName());  
  static    
  {  
  try  
          {  
          Context   initCtx   =   new   javax.naming.InitialContext();  
                      ds   =(DataSource)initCtx.lookup(HttpParams.getString(Constants.DATASOURCE));                    
          }              
          catch   (NamingException   e)  
          {  
          log.error(e.getMessage());  
          }    
  }  
  private   DBConnection()    
  {      
          try  
  {  
            conn=ds.getConnection();  
  }  
          catch(Exception   exp   )  
          {  
          log.error(exp.getMessage());  
          }  
          }  
   
  public   synchronized   static   DBConnection   getInstance()  
  {  
                  return   new   DBConnection();  
  }  
  public     Connection   getConnection()  
  {  
  Connection   dbcn   =   null;  
          try  
          {                        
                        dbcn   =   ds.getConnection();  
          }  
          catch(Exception   exp   )  
          {          
          log.error(exp.getMessage());  
          if   (dbcn   !=null)  
          try    
  {  
                        dbcn.close();  
                        dbcn   =   null;  
                          }    
                          catch(SQLException   SQLExp)  
          {  
                          log.error(SQLExp.getMessage());  
                          }    
          }          
          return     dbcn;  
  }  
  public   void   Close()    
  {  
  try  
  {  
  conn.close();  
  }  
  catch(SQLException   ex)  
  {  
  log.error("db   close   is   error!");  
  }  
  }  
  public     ResultSet   executeQuery(String   sql)  
    {  
  Statement   stmt;  
  ResultSet   rst;  
          rst   =   null;          
          try  
          {  
              stmt=conn.createStatement();  
              rst   =   stmt.executeQuery(sql);  
          }  
          catch(SQLException   ex)  
          {  
          log.error("Query   error   :"+sql);  
          }  
          return   rst;  
    }  
  public   void   RollBackTransaction()  
  {  
  try  
  {  
  conn.rollback();  
  }  
  catch(SQLException   ex)  
  {  
  log.error("RollBack   Transaction   error");  
  }  
  }  
  public   void   BeginTransaction()  
  {  
  try  
  {  
  conn.setAutoCommit(false);  
  }  
  catch(SQLException   ex)  
  {  
  log.error("Begin   Transaction   error");  
  }  
  }  
  public   void   CommitTransaction()  
  {  
  try  
  {  
  conn.commit();  
  }  
  catch(SQLException   ex)  
  {  
  log.error("commit   Transaction   error");  
  }  
  }  
  public     void   executeUpdate(String   sql)   throws   SQLException  
  {  
  Statement   stmt;  
  ResultSet   rst;  
          try  
          {        
              stmt=conn.createStatement();              
              stmt.executeUpdate(sql);  
              stmt.close();              
          }  
          catch(SQLException   ex)  
          {  
                log.error("Update   error:"+sql);  
                throw   ex;  
          }  
  }  
  }Top

相关问题

  • 连接数据库的javabean的问题
  • 怎么才能在COM中共享数据库连接?
  • 在oracle8.17不可以建共享数据库连接到ora7.3.4吗?
  • 如何共享一个数据库连接?
  • 数据库共享
  • 数据库连接
  • 连接数据库!!!
  • 连接数据库!!!
  • 数据库连接!
  • 数据库连接

关键词

  • 连接
  • exp
  • ds
  • dbcn
  • dbconnection
  • getconnection
  • getmessage
  • datasource
  • try
  • catch

得分解答快速导航

  • 帖主:moneyhui
  • 108041217

相关链接

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

广告也精彩

反馈

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