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

[经典问题????]struts里配置的连接池,如果在java的类和javabean中调用

楼主startstrong()2006-05-03 20:02:22 在 Java / 框架、开源 提问

就是想获得struts中配置文件中配置的连接池,在类中把连接这个过程封装起来  
   
  以后要得到连接时就只用new下这个类就行了  
   
  但struts的连接池的使用好像非要是action才行是吗   ???????  
   
  如果解决马上给分! 问题点数:100、回复次数:11Top

1 楼startstrong()回复于 2006-05-03 20:02:31 得分 0

upTop

2 楼startstrong()回复于 2006-05-03 20:03:16 得分 0

给个例子,如果可以马上结贴,分不够可以再加!!!!!!!!!!!!!!!!Top

3 楼usegirls()回复于 2006-05-03 20:43:59 得分 0

关注!!!!  
  帮助顶!Top

4 楼usegirls()回复于 2006-05-03 21:15:11 得分 0

帮助顶!Top

5 楼zsq666(bluechina)回复于 2006-05-04 13:00:05 得分 0

顶!Top

6 楼zsq666(bluechina)回复于 2006-05-04 23:17:36 得分 0

upTop

7 楼Michael_javavb()回复于 2006-05-05 08:22:07 得分 0

package   com.ntsky.datasource;  
   
  import   javax.naming.*;  
  import   java.util.Hashtable;  
   
  import   com.mysql.jdbc.jdbc2.optional.MysqlDataSource;  
  import   java.sql.Connection;  
  import   javax.sql.DataSource;  
  import   javax.naming.InitialContext;  
  import   org.apache.log4j.Logger   ;  
  import   java.sql.*;  
  /**  
    *   <p>Title:   Ntsky   OpenSource   BBS</p>  
    *   <p>Description:   从Jboss线程池中获取连接</p>  
    *   <p>Copyright:   Copyright   (c)   2004</p>  
    *   <p>Company:   WWW.FM880.COM</p>  
    *   @author   姚君林  
    *   @version   1.0  
    */  
   
  public   class   DBConnectionManager   {  
          private   static   DBConnectionManager   dbc   =   null;  
          private   static   Object   object   =   new   Object();  
   
          public   DBConnectionManager(){}  
        //   private   final   static   Logger   logger   =   Logger.getLogger(DBConnectionManager.class);  
          public   static   DBConnectionManager   getInstance()   {  
                  if   (dbc   ==   null)   {  
                          synchronized(object){  
                                  if(dbc   ==   null)  
                                          dbc   =   new   DBConnectionManager();  
                          }  
                  }  
                  return   dbc;  
          }  
   
          /**  
            *   获取上下文  
            *   @throws   NamingException  
            *   @return   Context  
            */  
          /*private   Context   getInitialContext()   throws   NamingException   {  
                  Hashtable   environment   =   new   Hashtable();  
   
                  environment.put(Context.INITIAL_CONTEXT_FACTORY,   "org.jnp.interfaces.NamingContextFactory");  
                  environment.put(Context.URL_PKG_PREFIXES,   "org.jboss.naming:org.jnp.interfaces");  
                  environment.put(Context.PROVIDER_URL,   "jnp://127.0.0.1:1099");  
                  return   new   InitialContext(environment);  
          }*/  
          /**.  
            *   获取连接  
            */  
          public   Connection   getConnection()   {  
                  DataSource   ds   =   null;  
                  Connection   conn   =   null;  
   
                  try   {  
                          Context   ctx   =   new   InitialContext();  
                          //tomcat   ds   =   (DataSource)   ctx.lookup("java:comp/env/ntsky");  
                          //ds   =   (DataSource)   ctx.lookup("java:comp/env/ntsky");  
                          ds   =   (DataSource)   ctx.lookup("java:/ntsky");  
                          conn   =   ds.getConnection();  
                          //logger.info("GET   sql   Connection   scuess   :   conn   =   "   +   conn);  
                          return   conn;  
                  }  
                  catch   (Exception   ex)   {  
                          System.out.println(ex.getMessage());  
                          //logger.error("get   sql   Connection   failure   :   "   +   ex.getMessage());  
                  }  
                  return   null;  
          }  
   
          public   ResultSet   rs_row(){  
                  Connection   conn   =   DBConnectionManager.getInstance().getConnection();  
                  System.out.println("conn   =   "   +   conn);  
   
                  String   sql   =   "select   *   from   t_user;";  
                  ResultSet   rs   =   null;  
                  try   {  
                          Statement   stmt   =   conn.createStatement();  
                    rs   =   stmt.executeQuery(sql);  
                            return   rs;  
                    }  
                    catch   (Exception   ex)   {  
                          System.out.println("ex"+ex.getMessage());  
                  }  
   
                  finally{  
                          /*try{  
                                  rs.close();  
                          }  
                          catch(Exception   e){  
                                  logger.error("DB   rs_row   关闭指针错误   "+   e.getMessage());  
                          }*/  
                        try   {  
                                  conn.close();  
                          }  
                          catch   (Exception   e)   {  
                                //   logger.error("DB   conn   关闭数据库连接错误   "   +   e.getMessage());  
                          }  
   
                  }  
                  return   null;  
          }  
   
   
          public   String   testProc(){  
                    Connection   conn   =   DBConnectionManager.getInstance().getConnection();  
                    ResultSet   rs   =   null;  
                    CallableStatement   cs   =   null;  
                    String   a   =   null;  
                    try{  
                            System.out.println("start");  
                            //cs   =   conn.prepareCall("{   call   procPara(?)   }");  
                            CallableStatement   cStmt   =   conn.prepareCall("{call   demoSp(?,   ?)}");  
   
                            System.out.println("start1");  
                            cStmt.setString(1,"1");  
                            cStmt.setString(2,"1");  
                            System.out.println("start2");  
                            rs   =   cStmt.executeQuery();  
                            rs.next();  
                            a   =   rs.getString(1);  
                    }  
                    catch(Exception   e){  
                            System.out.println("hahad"+e.getMessage());  
                    }  
                    finally{  
                            try   {  
                                    conn.close();  
                            }  
                            catch   (Exception   ex)   {  
                                    System.out.println("ex   :   "+   ex.getMessage());  
                            }  
                    }  
   
                    return   a;  
   
          }  
              public   static   void   main(String[]   args)   {  
              DBConnectionManager   dbcm   =DBConnectionManager.getInstance();  
                  ResultSet   rs   =   dbcm.rs_row();  
                  try{  
                          System.out.println("1   :   "   +   rs.getString(1));  
                  }  
                  catch(Exception   e){  
                          System.out.println("main   "+e.getMessage());  
                  }  
          }  
  }  
  Top

8 楼Michael_javavb()回复于 2006-05-05 08:23:47 得分 0

上面的源码是我下的论坛系统所使用的。  
  下面给出我自己写的,简化了的Top

9 楼Michael_javavb()回复于 2006-05-05 08:25:49 得分 0

数据源的配置我就不说了,网上n多  
  package   com.mich.stock.datasource;  
   
  import   java.sql.*;  
  import   javax.sql.*;  
  import   javax.naming.*;  
   
  /**  
    *   @author   Michael   Wang   从Tomcat数据库连接池(DBCP)中获取连接  
    */  
  public   class   DBConnectionManager   {  
  private   static   DBConnectionManager   dbcm   =   null;  
   
  private   static   Object   object   =   new   Object();  
   
  public   static   DBConnectionManager   getInstance()   {  
  if   (dbcm   ==   null)   {  
  synchronized   (object)   {  
  if   (dbcm   ==   null)  
  dbcm   =   new   DBConnectionManager();  
  }  
  }  
  return   dbcm;  
  }  
   
  public   Connection   getConnection()   {  
  DataSource   ds   =   null;  
  Connection   conn   =   null;  
  try   {  
  InitialContext   ctx   =   new   InitialContext();  
  ds   =   (DataSource)   ctx.lookup("java:comp/env/jdbc/stock");  
  if   (conn   ==   null)  
  conn   =   ds.getConnection();  
  return   conn;  
  }   catch   (Exception   ex)   {  
  System.out.println(ex.getMessage());  
  }  
  return   null;  
  }  
   
  public   ResultSet   execQuery(String   sql)   {  
  Connection   conn   =   DBConnectionManager.getInstance().getConnection();  
  System.out.println("conn   =   "   +   conn);//   for   test   the   DBCP  
  ResultSet   rs   =   null;  
  try   {  
  Statement   stmt   =   conn.createStatement();  
  rs   =   stmt.executeQuery(sql);  
  //System.out.println("rsnext="+rs.next());  
  return   rs;  
  }   catch   (Exception   ex)   {  
  System.out.println("ex"   +   ex.getMessage());  
  }   finally   {  
  try   {  
  System.out.println("finally   Conn   close");  
  conn.close();  
  }   catch   (Exception   e)   {  
  System.out.println("DB   conn   关闭数据库连接错误   "   +   e.getMessage());  
  }  
   
  }  
  return   null;  
  }  
   
  public   void   execUpdate(String   sql)   {  
  Connection   conn   =   DBConnectionManager.getInstance().getConnection();  
  System.out.println("conn   =   "   +   conn);//   for   test   the   DBCP  
  try   {  
  Statement   stmt   =   conn.createStatement();  
  stmt.executeUpdate(sql);  
  }   catch   (Exception   ex)   {  
  System.out.println("ex"   +   ex.getMessage());  
  }   finally   {  
  try   {  
  conn.close();  
  }   catch   (Exception   e)   {  
  System.out.println("DB   conn   关闭数据库连接错误   "   +   e.getMessage());  
  }  
   
  }  
  }  
   
  public   DBConnectionManager()   {  
  //   TODO   Auto-generated   constructor   stub  
  }  
   
  }  
  Top

10 楼Saro(这也不是江水,这是二十年流不尽的英雄血。)回复于 2006-05-05 12:04:39 得分 0

我在你的这个帖子里已经给了个例子。真是奇怪的需求,为什么一定要用struts的连接池啊???  
  http://community.csdn.net/Expert/topic/4730/4730672.xml?temp=.3928644Top

11 楼lulu123ma(抵制虚黄,支持实黄(扫黄现状))回复于 2006-05-05 19:08:38 得分 0

不要在这一层来作数据库的操作!!Top

相关问题

关键词

得分解答快速导航

  • 帖主:startstrong

相关链接

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

广告也精彩

反馈

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