在 java 中使用数据库需要编写一组代码行。如果数据库连接再次-n-再次建立,则需要再次-n-再次重复相同的行集,这会给程序员带来开销。
因此,我正在制作一个用作数据库代理的实用程序类。此类的方法将负责所有与数据库相关的事情,从建立连接到执行查询并返回结果。
我的课是这样的-
package connect;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Connector
{
private ResultSet rs;
public String password;
public void connect(String dbUrl, String dbClass, String dbUserName, String dbPassword, String query)
{
try
{
Class.forName(this.dbClass).newInstance();
Connection conn = DriverManager.getConnection (dbUrl, dbUserName, dbPassword);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(query);
while(rs.next())
{
this.password = (String) rs.getObject(1);
}
conn.close();
} //end try
catch(Exception e)
{
e.printStackTrace();
}
}
}
当程序员需要执行查询时,可以为此编写以下行 -
Connector con = new Connector();
con.connect("your database URL",
"your database driver",
"your database username",
"your database password",
"your query");
我的问题是,现在我正在使用连接方法本身从 ResultSet 中检索数据。检索到的数据可能因查询而异,因此我想要一个数据结构,我可以在 connect() 方法中存储来自 rs 的数据并返回它。
它看起来像 -
<data structure> result = con.connect("your database URL",
"your database driver",
"your database username",
"your database password",
"your query");
有人可以为此建议我一个数据结构吗?
最佳答案
不确定您为什么要重新发明这个特定的轮子,而且如果您为每个查询重复连接,您基本上会失去任何性能,但为什么不直接使用 RowSetDynaClass如果您不打算映射到对象?
请注意,有大量已经过测试和验证的现有解决方案。并使用连接池;创建连接是昂贵的。
关于java - 结果集的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227046/