我的应用程序允许用户浏览世界地图。当用户单击某个国家时,会出现一个正念图。然后,用户遍历这个正念图的节点。例如,当用户点击新加坡时,就会出现一个思维图。接下来,用户单击一个作业函数,例如人力资源。最后一个节点将用户重定向到另一个页面,其中有一个JSF,其中显示了相应位置和功能中的作业配置文件。与每个datatable对应的典型方法如下所示。
public ResultSet getAll() throws SQLException {
Connection conn = ds.getConnection();
try {
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery("SELECT * FROM JOBPROFILE WHERE LOCATION='SINGAPORE' AND JOBFUNCTION='HUMAN RESOURCES'");
CachedRowSet crs = new CachedRowSetImpl();
crs.populate(result);
return crs;
} finally {
conn.close();
}
}问题是我有16个地点和14个功能。这意味着我有224页面、数据和方法要编写!维修将是一场噩梦。有什么方法可以通过编程来完成,这样我就不必一遍又一遍地重复大部分代码吗?每个方法之间唯一的差异是SQL查询。我正在用flash实现世界地图和思维地图,因此我不确定如何检索用户单击的最终值,并将其传递给后台bean,这样我就可以调用相关的查询,而不是编写224个不同的页面、数据和方法,它们仅在一行代码中发生变化。
发布于 2010-11-24 11:39:01
您应该将数据存储在超链接中。即
foo.com/jobs?country=singapore&jobfunction=humanresources然后,JSF可以使用它,并调用一个更可恢复的方法:
public ResultSet getAll(String location, String profile) throws SQLException {
Connection conn = ds.getConnection();
try {
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery("SELECT * FROM JOBPROFILE WHERE LOCATION='"+location+"' AND JOBFUNCTION='"profile"'");
CachedRowSet crs = new CachedRowSetImpl();
crs.populate(result);
return crs;
} finally {
conn.close();
}
}请记住,您应该转义这些,或者更好地使用准备陈述。
https://stackoverflow.com/questions/3837913
复制相似问题