首先,我是新手Java/JSP/Eclipse
。但是,我拥有多年的 .Net 经验。我刚刚在 Java 中学习了如何使用javax.sql.DataSource
(这样我就不需要输入用户名/密码)建立与 MS SQL Server 的连接。
现在,我创建了一个类来处理数据库查询,在那个类中,我有一个函数,我可以调用它来返回一个RowSet
.
import javax.naming.Context;
import javax.naming.InitialContext;
import java.sql.Connection;
import javax.sql.DataSource;
import javax.sql.rowset.JdbcRowSet;
import com.sun.rowset.JdbcRowSetImpl;
public abstract class ClsDBAccessBASE {
public boolean prbAutoCommit = true;
public String prsDataSourceName = "";
public ClsDBAccessBASE( String pvsDataSourceName ) {
prsDataSourceName = pvsDataSourceName;
}
public JdbcRowSet fnorsSQLText( String pvsSQLText ) {
JdbcRowSet voRS = null;
try {
Context voContext = new InitialContext();
DataSource voDS = (DataSource)voContext.lookup(prsDataSourceName);
Connection voConn = (Connection)voDS.getConnection();
voRS = new JdbcRowSetImpl((voConn.createStatement()).executeQuery(pvsSQLText));
} catch (Exception e) {e.printStackTrace();}
return voRS;
}
}
}
我的目标是确保我使用的是连接池。我知道JdbcRowSet
自动执行?但是,问题(我认为)是我将(voConn.createStatement()).executeQuery(pvsSQLText)
aResultSet
转换为 a JdbcRowSet
。这是否意味着使用的底层连接仍然存在ResultSet
?而不是RowSet
?有没有办法让我检查我是否确实在使用连接池?
对不起,如果我的问题听起来很愚蠢。我对 Java 开发和 Eclipse 非常陌生。请多多包涵,我将不胜感激您能为我提供的任何指导。
我正在使用:sqljdbc4.jar
from Microsoft
(每当我调用函数和/或 .next() 函数时,它似乎都会给我错误JdbcRowSet.execute()
。关于 NullReference 的东西。但这是另一个问题。