直接上代码
//测试类
public class Draft {
public static void main(String args[]){
Connection conn=Fconn.getPoolConn();
System.out.println(conn.toString());
}
}
//jsp测试页
<%
Connection conn=Fconn.getPoolConn();
out.println(conn.toString());
%>
//从池中获取连接功能类,测试程序中我用下面的工厂获得连接
public class GetConnectionFromPool {
private Connection conn=null;
public Connection getMySQLConnection(){
try{
String datasourcename="java:comp/env/jdbc/HanLinMysql";
Context cont=new InitialContext();
DataSource datasource=(DataSource)cont.lookup(datasourcename);
this.conn=datasource.getConnection();
}catch(Exception e){
//this.conn=null;
}
return this.conn;
}
public Connection getSQLServerConnection(){
try{
String datasourcename="java:comp/env/jdbc/HanLinSQLServer/hanlinsale";
Context cont=new InitialContext();
DataSource datasource=(DataSource)cont.lookup(datasourcename);
this.conn=datasource.getConnection();
}catch(Exception e){
//this.conn=null;
}
return this.conn;
}
}
//连接工厂
public class Fconn {
public static Connection getPoolConn(){
Connection conn=null;
GetConnectionFromPool pool=new GetConnectionFromPool();
conn=pool.getSQLServerConnection();
return conn;
}
}
环境问题?你再试试从新配置环境变量
知道了,tomcat数据源是基于tomcat容器的,,,,单独的class没有通过容器,把这个class写在servlet就可以了,tomcat把jsp处理为servlet了
//这句加载数据源的代码只有容器才认识
String datasourcename="java:comp/env/jdbc/HanLinSQLServer/hanlinsale";
你直接使用main 执行,你的web 容器都没有启动呢?怎么可能拿的到,就好像你spring 还没有加载,你就要去拿spring 的been 一样,当然是拿不到的啊!、
上楼正解,你换成servlet 就可以了,通过页面请求过来,web 容器已经初始化完成了,不懂web容器什么时候启动,自行百度
你直接使用main 执行,你的web 容器都没有启动呢?怎么可能拿的到,就好像你spring 还没有加载,你就要去拿spring 的been 一样,当然是拿不到的啊!