为什么这个连接池类编译时出现错误,DataSource类在sql包中没有找到的错误
错误出现在下列程序中的javax.sql.DataSource ds = (javax.sql.DataSource)obj;
说sql包中DataSource类,为不能解析符号。烦劳大家看一下
程序如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import java.sql.*;
public class DBConnect { //数据库连接BEAN
static String jndiName="jdbc/mysqlserver";
public Statement stmt; //新建sql语句管理对象
public Connection conn = null; //新建数据库连接管理对象
public ResultSet rs = null; //返回数据结果集对象
public static Connection getConnection() throws Exception{
Connection conn = null;
try {
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj = ctx.lookup(jndiName);
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
//获得数据库连接
conn= ds.getConnection();
} catch (java.lang.SecurityException se) {
throw se;
} catch(Exception e) {
e.printStackTrace();
throw e;
}
return conn;
}
//功能说明:执行带结果集的sql语句
//参 数 值: 需执行的SQL字符串(SELECT语句)
//返 回 值:返回数据结果集
public ResultSet executeQuery(String SQL){
rs = null;
try{
stmt = conn.createStatement() ;
rs=stmt.executeQuery(SQL) ;
}
catch(SQLException ex){
System.out.print("execute sql statement is error!") ;
}
return rs;
}
//执行不带结果集的sql语句
//参 数 值: 需执行的SQL字符串(INSERT,UPDATE,DELETE..)
//返 回 值:空
public void executeUpdate(String SQL){
try{
stmt = conn.createStatement() ;
stmt.executeUpdate(SQL);
}
catch(SQLException ex){
System.out.println("execute sql statement is error!") ;
}
}
//关闭数据库连接
public void destroy(){
try{
stmt.close() ;
conn.close() ;
}
catch(Exception e){
e.printStackTrace() ;
}
}
}