jsp开发中调用tomcat数据库连接池,可能很多朋友都会,下面这段代码相信用过的人都很熟悉:
list1:testpool.jsp
但是许多人不知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");
//设置连接池初始大小
Tomcat的JNDI数据源绑定
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());
}
}
分享到:
相关推荐
TOMCAT8 JNDI对用户名和密码加密
自定义jndi数据源factory类,用于解密jndi中的加密数据,解密方式为DES,具体可根据实际需求修改。
Tomcat JNDI 数据源 自动生成程序 Servlet 版 本程序自动判断Tomcat版本,兼容tomcat 5.0、5.5、6.0等版本, 根据项目名自动生成 JNDI 配置文件,使程序员从手动配置JNDI数据源中解脱出来。 使用说明: 1、把...
自己总结的三种使用方式,对比来看选择最适合你的方式
tomcat上配置的JNDI数据源的几种方式
Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程
在Tomcat配置JNDI数据源的三种方式
NULL 博文链接:https://buliedian.iteye.com/blog/858026
Tomcat配置JNDI数据源的N种方法
tomcat配置jndi几个方式
Tomcat6.0 JNDI数据源经典实例,里面JAR包,配置文件,数据源都配置好了,sql语句已经打包好了,直接可以建表的。
Tomcat6+spring+jndi配置数据源说明.docx
java中使用tomcat提供的JNDI数据源
tomcat中配置jndi 数据源!!!
收集而来。非常的好@@@累死了,睡觉去@ 在struts+hibernate中使用tomcat5.5的jndi数据源
Tomcat_5配置JNDI数据源
spring获取weblogic jndi数据源的两种方式,一种本地weblogic server获取,无需用户名、密码、IP和端口等;另一种为从其他weblogic server获取,则必须申明用户名、密码、IP和端口
如何使用JNDI数据源,Tomcat数据源配置
简单我tomcat5.0中的JNDI应用
TOMCAT JNDI配置