JNDI tomcat

JNDI数据源简易配置:

/WebRoot/META-INF/context.xml

 
<Context>
<!--Workflow mysql -->
    <Resource name="jdbc/workflow" auth="Container"
              type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/workflow"
              username="root" password="" maxActive="10" maxIdle="5"
              maxWait="-1"/>  
  

 

</Context>

web.xml

<resource-ref>
  <description>mysql</description>
  
  
  <res-ref-name>jdbc/workflow</res-ref-name>
  
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

mysql的jar包,放到项目下,并放到tomcat目录下

tomcat-6.0.14\lib\mysql-connector-java-5.1.5-bin.jar

tomcat-5.5.35\common\lib\mysql-connector-java-5.1.5-bin.jar(tomcat5,可不放)

测试类:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DataSourceUtil {

 // java:comp/env/是必须加的,后面跟你的DataSource名
 private String JNDI = "java:comp/env/jdbc/workflow";

 private DataSource ds = null;
 private Connection conn = null;
 private PreparedStatement pstm = null; 
 private ResultSet rs = null;

 //构造函数
 public DataSourceUtil() {

  try {
   // 初始化查找命名空间
   Context ctx = new InitialContext();
   // InitialContext ctx = new InitialContext();亦可
   // 找到DataSource,对名称进行定位java:comp/env是必须加的,后面跟你的DataSource名
   ds = (DataSource) ctx.lookup(JNDI);
   // 取出连接
   conn = ds.getConnection();
   System.out.println("connection pool connected !!");
  } catch (NamingException e) {
   System.out.println(e.getMessage());
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   // 注意不是关闭,是放回连接池.
   //conn.close();
  }
 }
 
 
 
 // 注意不是关闭,是放回连接池.
 public void colse(){
  if(conn != null){
   try {
    conn.close();
   } catch (SQLException e) {    
    e.printStackTrace();
   }
  }
 }
 
 
 public ResultSet find(String sql) throws SQLException{
  pstm = conn.prepareStatement(sql);
  rs = pstm.executeQuery();
  return rs;  
 }
 
 public void displayRs(ResultSet rs) throws SQLException{
  while(rs.next()){ 
         System.out.println("user name is " + rs.getString(1)); 
     }
 }
 
 
 public static void main(String[] args) {
  DataSourceUtil dsu = new DataSourceUtil();
 }

}

猜你喜欢

转载自cai-bird.iteye.com/blog/1958729