【发布时间】:2012-10-05 07:16:01
【问题描述】:
首先,我是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) 从ResultSet 转换为JdbcRowSet。这是否意味着使用的底层连接仍然是ResultSet?而不是RowSet?
有没有办法让我检查我是否确实在使用连接池?
对不起,如果我的问题听起来很愚蠢。我对 Java 开发和 Eclipse 非常陌生。请多多包涵,我将不胜感激您能为我提供的任何指导。
我正在使用:sqljdbc4.jar from Microsoft(每当我调用 JdbcRowSet.execute() 函数和/或 .next() 函数时,这似乎都会给我错误。关于 NullReference 的一些东西。但这是另一个问题。
【问题讨论】:
标签: java jdbc connection-pooling