连接池问题

连接池问题解决了java编程中原始的连接数据库时候只能供一个连接使用的问题!
但在myeclipse6.0和tomcat6.0组合编程中,有部分问题和5.5的tomcat不同。这里就不说区别了,就说说怎么配置tomcat6.0下的连接池!
在加载项目后的tomcat下面的conf文件夹中的context.xml中配置如下代码!就算是配置好了,当然你的密码可能不是sa,那就根据你自己的sqlserver来设置!

<?xml version='1.0' encoding='utf-8'?> 
<Context> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource> 

<Resource name="名字" auth="Container" type="javax.sql.DataSource" 
  maxActive="100" maxIdle="30" maxWait="10000" username="sa" 
  password="sa" 
  driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" 
  url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名字" /> 
</Context> 

 配置完成后,如何在程序中调用这个外部文件呢?
我们可以看到,context.xml的<WatchedResource></WatchedResource>节点中描述了引用方式——项目中的WEB—INF、web.xml。
那也就是说,要在web.xml下对数据源进行引用。
ok,那就看看下面在web.xml下是如何引用的呢? 

<resource-ref> 
  <description>E-Books DataSource</description> 
  <res-ref-name>books</res-ref-name> 
  <res-type>javax.sql.DataSource</res-type> 
  <res-auth>Container</res-auth> 
</resource-ref>

 
加上上面的代码就ok了,要注意的是,<description></description>是对引用的描述,中间的内容可以随便写,但是,下面的name属性要和tomcat下的name一致,type和auth也是如此。否则在运行项目的时候会报Unknown Source错误的。
同时,所配置的连接池还不能在java类中引用,只能在jsp和servlet中引用。
配置玩了,还要获得连接Connection,跟原始的一样,写个连接类,但不同的是,现在你是十分的轻松!代码如下:

public Connection getConn() { 
   Connection connection; 
  Context ic; 
  try { 
   ic = new InitialContext(); 
   Context context = (Context) ic.lookup("java:comp/env"); 
   DataSource source = (DataSource) context.lookup("books"); 
   // DataSource sourceone = 
   // (DataSource)ic.lookup("java:/comp/env/books"); 
   try { 
    connection = source.getConnection(); 
   } catch (SQLException e) { 
    e.printStackTrace(); 
   } 
  } catch (NamingException e) { 
   e.printStackTrace(); 
  } 
  return connection; 
} 

 该方法中的Context接口,通过new InitialContext来产生对象!
方法中// DataSource sourceone =
   // (DataSource)ic.lookup("java:/comp/env/books");实现的跟它上面的是一样的!

 

你可能感兴趣的:(tomcat,编程,Web,xml,Microsoft)