我想做的功能是用户在页面上点击一个城市,然后在下面就查询出相应的该城市的信息
比如点击杭州 查询杭州的信息 点击嘉兴 查询嘉兴的信息jsp页面我是以
<span onclick="window.location.href='action路径?实体.City=杭州'">杭州</span>
这种方式获得用户点击的城市参数然后后台的sql怎么根据参数生成啊??后台代码怎么写 给个思路啊小弟是菜鸟,坐等各位大大解决问题啊

解决方案 »

  1.   

    用参数化查询,避免使用动态SQL。
      

  2.   

    用 public interface PreparedStatementextends Statement表示预编译的 SQL 语句的对象。 SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。 注:用于设置 IN 参数值的设置方法(setShort、setString 等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型 INTEGER,那么应该使用 setInt 方法。 如果需要任意参数类型转换,使用 setObject 方法时应该将目标 SQL 类型作为其参数。 在以下设置参数的示例中,con 表示一个活动连接:    PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                         SET SALARY = ? WHERE ID = ?");
       pstmt.setBigDecimal(1, 153833.00)
       pstmt.setInt(2, 110592)
      

  3.   

    你是以请求参数的形式送出city到服务器的,所以用
    request.getParameter("实体.City")这种方式来取。根据1楼蒋公的提醒,楼主应该考虑PreparedStatement,将上面获取到的city值setString("字段名", city参数值);
    这样子设进去。另外,用Struts2的话,在Action中新增一个“实体”属性接收city参数值就行了,不用getParameter主动去取了。
      

  4.   

    用 public interface PreparedStatementextends Statement表示预编译的 SQL 语句的对象。 
      

  5.   

    参数不就一个城市吗?
    直接传进去 判断是否为空 然后拼写你的sql就可以了啊
      

  6.   

    用get方式传汉字啊,很容易出现乱码的啊,建议传城市编码
    request.getParameter()获取传过来的城市名称
    select * from 表 where city字段名=‘传过来的城市名’
    这样就可以了嘛
      

  7.   

    public List<City> getCityInfo(String cityName){
    try {
    return this.query("from City where Name=? ", cityName);
    } catch (DAOException e) {
    e.printStackTrace();
    }
    return null;
    }