首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这种情况下,我如何保持干燥和防止代码爆炸?

在这种情况下,我如何保持干燥和防止代码爆炸?
EN

Stack Overflow用户
提问于 2010-10-01 09:25:14
回答 1查看 137关注 0票数 0

我的应用程序允许用户浏览世界地图。当用户单击某个国家时,会出现一个正念图。然后,用户遍历这个正念图的节点。例如,当用户点击新加坡时,就会出现一个思维图。接下来,用户单击一个作业函数,例如人力资源。最后一个节点将用户重定向到另一个页面,其中有一个JSF,其中显示了相应位置和功能中的作业配置文件。与每个datatable对应的典型方法如下所示。

代码语言:javascript
复制
    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个不同的页面、数据和方法,它们仅在一行代码中发生变化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-24 11:39:01

您应该将数据存储在超链接中。即

代码语言:javascript
复制
foo.com/jobs?country=singapore&jobfunction=humanresources

然后,JSF可以使用它,并调用一个更可恢复的方法:

代码语言:javascript
复制
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();
    }
}

请记住,您应该转义这些,或者更好地使用准备陈述

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3837913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档