我试图从数据库中包含的表中获取所有数据,并将其解析为List。我尝试了一些不同的技术,但无法使其正常工作。我正在尝试序列化ResultSet,以便我可以通过套接字发送它。我到目前为止的代码是:
public Object readJavaObject(String query, Connection con) throws Exception
{
PreparedStatement stmt = con.prepareStatement(query);
//stmt.setString(1, id);
query_results = stmt.executeQuery();
while (query_results.next())
{
dataObject = query_results.getObject(1);
}
query_results.close();
stmt.close();
return dataObject;
}
public void run()
{
try
{
Class.forName(dbClass);
con = DriverManager.getConnection (dbUrl, user, pass);
query = "SELECT * FROM Bench_table";
dataList = (List) this.readJavaObject(query, con);
con.close();
}
}
我不确定在readJavaObject
周围编写什么代码。任何人都可以帮忙指出问题所在吗?
感谢您的帮助。
答案 0 :(得分:3)
看看DbUtils(来自apache-commons)。
如果您需要更复杂的解决方案来将sql结果映射到java对象,请查看object-relational mapping。在Java中,标准是JPA(Java Persistence API),其中Hibernate,EclipseLink和OpenJPA是最着名的实现者。
答案 1 :(得分:2)
您的代码存在一些问题。
答案 2 :(得分:0)
我不知道您想要实现的目标,但我可以向您介绍DAO (Data Access Object) Pattern吗?
答案 3 :(得分:0)
我最近发现了CachedRowSet,它正是OP所需要的。它特别允许序列化ResultSet
,并在需要时恢复原始文件。