mainAction.javaString mid;

try {
mid=request.getParameter("mid");
Connection con=connectionFactory.getconnection();
String sql="select name,content,index_image_url from main where id=?";
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1,mid);
ResultSet rs=ps.executeQuery();
rs.next();
mainForm mf=new mainForm();
mf.setName(rs.getString(1));
mf.setContent(rs.getString(2));
mf.setIndex_image_url(rs.getString(3));
request.setAttribute("mf", mf);String mid;

try {
mid=request.getParameter("mid");
Connection con=connectionFactory.getconnection();
String sql="select name,content,index_image_url from main where id=?";
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1,mid);
ResultSet rs=ps.executeQuery();
rs.next();
mainForm mf=new mainForm();
mf.setName(rs.getString(1));
mf.setContent(rs.getString(2));
mf.setIndex_image_url(rs.getString(3));
request.setAttribute("mf", mf);
尤其是ps.setString(1,mid);这部分不太理解!
在main.jsp部分有<ul>
 <li><a href="main.do?mid=2">公司简介</a></li>
 <li><a href="main.do?mid=3">业务介绍</a></li>
 <li><a href="main.do?mid=4">企业资质</a></li>
 <li><a href="main.do?mid=5">大事记</a></li>
                      </ul>

解决方案 »

  1.   

    mid=request.getParameter("mid");   //取main.jsp页面传递过来的mid值
    Connection con=connectionFactory.getconnection(); //获取数据库连接
    String sql="select name,content,index_image_url from main where id=?"; //要执行的SQL语句
    PreparedStatement ps=con.prepareStatement(sql); 
    ps.setString(1,mid);         //替换上面SQL语句中的 id=? 的?值
    ResultSet rs=ps.executeQuery(); //执行查询
    rs.next(); //游标跳到第一条记录
    mainForm mf=new mainForm();        
    mf.setName(rs.getString(1)); //从记录集中读取name 并设置到mf对象中的name属性
    mf.setContent(rs.getString(2)); //以此类推
    mf.setIndex_image_url(rs.getString(3));
    request.setAttribute("mf", mf);
      

  2.   

    一个简单的前台传值到后台查询的方法。<li><a href="main.do?mid=2">公司简介</a></li> //这是一个超链接,把mid作为参数放到reqest作用域中然后在后台取得mid的value值String sql="select name,content,index_image_url from main where id=?";//这里的?是输入占位符ps.setString(1,mid);//这里的目的就是为了给?赋值,1代表第一个?的值,依次类推
      

  3.   

    顶一楼的
    pstmt的set方法
    pstmt.setString(n, str);
    是将conn.prepareStatement(sql)中sql的第n个问号内容用str代替,这个可以查API
    例如
    String username = test;
    String password = testtest;
    String sql = "select * from user u where u.username = ? and u.password = ?";
    PreparedStatement pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, username);
    pstmt.setString(2, password);
    ResultSet rs = pstmt.executeQuery();
    ... ...