国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Tomcat > 正文

用JNDI綁定tomcat數據源

2024-09-06 19:01:09
字體:
來源:轉載
供稿:網友


收集最實用的網頁特效代碼!

     jsp開發中調用tomcat數據庫連接池,可能很多朋友都會,下面這段代碼相信用過的人都很熟悉:

list1:testpool.jsp

<%
 initialcontext ctx=new initialcontext();
 datasource ds = (datasource)ctx.lookup("java:comp/env/jdbc/mysql");
 connection conn = ds.getconnection();
 statement stmt = conn.createstatement();
 
 string strsql = " select * from t_user";
 resultset rs = stmt.executequery(strsql);
 ......
 stmt.close();
 rs.close();
 conn.close();
%>

但是許多人不知tomcat啟動時,用jndi對數據源做了綁定,所以就不知道如何在j2se中用main函數調用這個數據源,其實,只要把testpool.jsp做一點改動:

 initialcontext ctx=new initialcontext();
 object o = ctx.lookup("java:comp/env/hibernate");
 out.print("class="+o.getclass().getname());
 datasource ds=(datasource)o;
 .......

即利用反射api打印出這個已注冊到jndi中數據源對象的class全名,就會知道原來數據源是一個“org.apache.commons.dbcp.basicdatasource”對象,這個class就在%tomcat%/common/lib下commons-dbcp-1.2.1.jar包里,與其關聯的還有commons-collections-3.1.jar、commons-pool-1.2.jar。

把以上三個包加入當前的工作環境,用下面這段代碼就可調用連接池了。我用的是mysql數據庫,請在調試時加入mysql的jdbc驅動和%tomcat%/common/lib下的naming-java.jar

   public static void main(string[] args) throws hibernateexception {
     try{
      basicdatasource bdds = new basicdatasource();
      //設置數據庫驅動
      bdds.setdriverclassname("org.gjt.mm.mysql.driver");
      //設置jdbc的url
      bdds.seturl("jdbc:mysql://localhost/sample");
      bdds.setusername("root");
      bdds.setpassword("1234");
      //設置連接池初始大小
      bdds.setinitialsize(2);
      
      //jndi配置
      hashtable env = new hashtable();
      env.put("java.naming.factory.initial","org.apache.naming.java.javaurlcontextfactory");
      initialcontext ctx=new initialcontext(env);
      
      //數據源綁定到jndi
      ctx.bind("tomcatds",bdds);
      //在jndi查找數據源
      datasource ds = (datasource)ctx.lookup("tomcatds");
      
      connection con = ds.getconnection();
      statement stmt = con.createstatement();
      string strsql = "select * from user";
      resultset rs = stmt.executequery(strsql);
      while(rs.next()){
       system.out.println("id="+rs.getstring(1));
      }
      rs.close();
      stmt.close();
      con.close();
     }catch(exception ex){
      system.out.print(ex.tostring());
     }
  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武宣县| 隆化县| 石狮市| 罗平县| 马鞍山市| 准格尔旗| 乾安县| 大邑县| 宜兰市| 郓城县| 密山市| 潞城市| 屏边| 宜阳县| 新巴尔虎左旗| 响水县| 琼结县| 郓城县| 阳新县| 通化市| 海南省| 益阳市| 富平县| 石屏县| 九寨沟县| 资中县| 衡南县| 寿光市| 墨江| 灌云县| 红桥区| 湘乡市| 竹北市| 阿荣旗| 大埔县| 白山市| 广元市| 屯留县| 修水县| 安岳县| 钦州市|