当我显示全部的信息的时候,他还是正确显示的,比如1号专业是计算机,2号会计,22号网络工程,当我模糊查询学号2的时候,2和22都显示出来,但是他们的专业却是计算机,会计,也就是按照全部信息那时候的专业排行下来!
但是查询的时候,如果我用回原来的学生表的ID,显示出来ID号就正确,一用专业表ID,那个ID号就是计算机、会计、网络工程等等的对应的ID号。
这个是我的方法。
//查询学生信息按学号精确、模糊查询
public List quexhjq(String stu_xh,String keywords) throws SQLException{
List list = new ArrayList();
if (stu_xh.equals("精确查询")) {
stmt = conn.prepareStatement("select * from stuInfo where stu_xh = ?");
stmt.setString(1,keywords);
rs = stmt.executeQuery();
} else {
stmt = conn.prepareStatement("select * from stuInfo where stu_xh like ?");
stmt.setString(1,"%"+keywords+"%");
rs = stmt.executeQuery();
}
while(rs.next()){
stubean stb = new stubean();
stb.setstu_xh(rs.getString("stu_xh"));
stb.setstu_name(rs.getString("stu_name"));
//把全部学生基本信息的专业结果显示为名称,而不是ID
public List que_stuzymc()throws SQLException{
List list = new ArrayList();
rs = conn.prepareStatement("select * from stuInfo,zy where stuInfo.stu_zy=zy.stu_zy").executeQuery();
while(rs.next()){
zybean zyb = new zybean();
        zyb.setstu_zy(rs.getString("stu_zy"));
zyb.setzymc(rs.getString("zymc"));
调用方法:
   <% 
   if(stu_xh!=""){
List list = dbni.quexhjq(stu_xh,keywords);
if(!list.isEmpty()){
  %>
for(int i=0;i<list.size();i++){
     stubean stb = (stubean)list.get(i); <% 
   DB dbn = new DB();
List list1 = dbn.que_stuzymc(); 
   zybean zyb = (zybean)list1.get(i);
   
  %>
    <td ><%=zyb.getstu_zy()%></td> 
我应该怎么改他才会在条件查询的时候,显示出来对应学号的对应专业名称?麻烦讲解详细点,我不太会的

解决方案 »

  1.   

    新手看不懂 不过你可以用打印的方式来调试System.out.println();刚从数据库中取出数据来就打印看看是否正确 如果正确就是jsp显示出问题你用模糊查询 2 22 当然都能查出啦(只要包含2的都符合要求  123 321 都能找到) 还有在jsp中还是不要用中文 if (stu_xh.equals("精确查询")) { ……
      

  2.   

    写stubean的时候class stubean 
    {
    //学生表的信息
     int zyId;//专业ID
     String zymc;//专业名称
    }public List quexhjq(String stu_xh,String keywords) throws SQLException{
    List list = new ArrayList();
    if (stu_xh.equals("精确查询")) {
    stmt = conn.prepareStatement("select * from stuInfo info,zy z where info.stu_zy= z.stu_zy and stu_xh = ?");
    stmt.setString(1,keywords);
    rs = stmt.executeQuery();
    } else {
    stmt = conn.prepareStatement("select * from stuInfo info,zy z where info.stu_zy= z.stu_zy and stu_xh like ?");
    stmt.setString(1,"%"+keywords+"%");
    rs = stmt.executeQuery();
    }
    while(rs.next()){
    stubean stb = new stubean();
    stb.setstu_xh(rs.getString("stu_xh"));
    stb.setstu_name(rs.getString("stu_name"));
    stb.setZymc(rs.getString("zymc"));
      

  3.   

    调用的方法://查询学生信息按学号精确、模糊查询
    public List quexhjq(String stu_xh,String keywords) throws SQLException{
    List list = new ArrayList();
     if (stu_xh.equals("精确查询")) {
    stmt = conn.prepareStatement("select * from stuInfo where stu_xh = ?");
    stmt.setString(1,keywords);
    rs = stmt.executeQuery();
     } else {
        stmt = conn.prepareStatement("select * from stuInfo where stu_xh like ?");
        stmt.setString(1,"%"+keywords+"%");
    rs = stmt.executeQuery();
     }
    while(rs.next()){
    stubean stb = new stubean();
    stb.setstu_xh(rs.getString("stu_xh"));
    stb.setstu_name(rs.getString("stu_name"));
    //stb.setstu_pwd(rs.getString("stu_pwd"));
    stb.setstu_sex(rs.getString("stu_sex"));
    stb.setstu_zy(rs.getString("stu_zy"));
    stb.setstu_nj(rs.getString("stu_nj"));
    stb.setstu_mz(rs.getString("stu_mz"));
    stb.setstu_sfzh(rs.getString("stu_sfzh"));
    stb.setstu_zzmm(rs.getString("stu_zzmm"));
    stb.setstu_addr(rs.getString("stu_addr"));
    stb.setstu_tel(rs.getString("stu_tel"));
    stb.setstu_email(rs.getString("stu_email"));
    list.add(stb);
    }
    return list;
    }
    //把全部学生基本信息的专业结果显示为名称,而不是ID 
    public List que_stuzymc()throws SQLException{
    List list = new ArrayList();
    rs = conn.prepareStatement("select * from stuInfo,zy where stuInfo.stu_zy=zy.stu_zy").executeQuery();
    while(rs.next()){
    zybean zyb = new zybean();
            zyb.setstu_zy(rs.getString("stu_zy"));
    zyb.setzymc(rs.getString("zymc"));
    list.add(zyb);
    }
    return list;
    }
      

  4.   


    我的stubean是这样的哦,这个还有什么问题吗?package com.jsp.bean;
    public class stubean{
    String stu_xh;
    String stu_name;
    String stu_pwd;
    String stu_sex;
    String stu_zy;
    String stu_nj;
    String stu_mz;
    String stu_sfzh;
    String stu_zzmm;
    String stu_addr;
    String stu_tel;
    String stu_email;
    public String getstu_xh(){
    return stu_xh;
    }
    public void setstu_xh(String stu_xh){
    this.stu_xh=stu_xh;
    }
    public String getstu_name(){
    return stu_name;
    }
    public void setstu_name(String stu_name){
    this.stu_name=stu_name;
    }
    public String getstu_pwd(){
    return stu_pwd;
    }
    public void setstu_pwd(String stu_pwd){
    this.stu_pwd=stu_pwd;
    }
    public String getstu_sex(){
    return stu_sex;
    }
    public void setstu_sex(String stu_sex){
    this.stu_sex=stu_sex;
    }
    public String getstu_zy(){
    return stu_zy;
    }
    public void setstu_zy(String stu_zy){
    this.stu_zy=stu_zy;
    }
    public String getstu_nj(){
    return stu_nj;
    }
    public void setstu_nj(String stu_nj){
    this.stu_nj=stu_nj;
    }
    public String getstu_mz(){
    return stu_mz;
    }
    public void setstu_mz(String stu_mz){
    this.stu_mz=stu_mz;
    }
    public String getstu_sfzh(){
    return stu_sfzh;
    }
    public void setstu_sfzh(String stu_sfzh){
    this.stu_sfzh=stu_sfzh;
    }
    public String getstu_zzmm(){
    return stu_zzmm;
    }
    public void setstu_zzmm(String stu_zzmm){
    this.stu_zzmm=stu_zzmm;
    }
    public String getstu_addr(){
    return stu_addr;
    }
    public void setstu_addr(String stu_addr){
    this.stu_addr=stu_addr;
    }
    public String getstu_tel(){
    return stu_tel;
    }
    public void setstu_tel(String stu_tel){
    this.stu_tel=stu_tel;
    }
    public String getstu_email(){
    return stu_email;
    }
    public void setstu_email(String stu_email){
    this.stu_email=stu_email;
    }}
      

  5.   

    用一值来代表是按哪种类型来查的:学号,姓名,专业不管按哪种类型来查,都需要显示学生的基本信息和专业名称,一次查询的过程通过连接查询就可以查出结果来 public List quexhjq(String stu_xh,String keywords,int type) throws SQLException{
            List list = new ArrayList();
             String opertor=" like ";//用来标识是精确查询还是模糊查询,默认是模糊查询
         
             if (stu_xh.equals("精确查询"))
             {
                opertor=" = ";         
              }
             if(type==1)//学号
       {
          stmt = conn.prepareStatement("select * from stuInfo info,zy z where info.stu_zy= z.stu_zy and  stu_xh "+opertor+" ?");
    }else if(type==2){//姓名
        stmt = conn.prepareStatement("select * from stuInfo info,zy z where info.stu_zy= z.stu_zy and stu_name "+opertor+" ?");
    }else if(type==3)//专业名称
        {
                    stmt = conn.prepareStatement("select * from stuInfo info,zy z where info.stu_zy= z.stu_zy and zy.zymac "+opertor+" ?");
    }
                    stmt.setString(1,"%"+keywords+"%");
                    rs = stmt.executeQuery();
                 
                    while(rs.next()){
                stubean stb = new stubean();
                stb.setstu_xh(rs.getString("stu_xh"));
                stb.setstu_name(rs.getString("stu_name"));
                //stb.setstu_pwd(rs.getString("stu_pwd"));
                stb.setstu_sex(rs.getString("stu_sex"));
                stb.setstu_zy(rs.getString("stu_zy"));
                stb.setstu_zymc(rs.getString("zymc"));
                stb.setstu_nj(rs.getString("stu_nj"));
                stb.setstu_mz(rs.getString("stu_mz"));
                stb.setstu_sfzh(rs.getString("stu_sfzh"));
                stb.setstu_zzmm(rs.getString("stu_zzmm"));
                stb.setstu_addr(rs.getString("stu_addr"));
                stb.setstu_tel(rs.getString("stu_tel"));
                stb.setstu_email(rs.getString("stu_email"));
                list.add(stb);
            }
            return list;
        }在学生类里多加
    String zymc;//这个属性
      

  6.   


      <% 
    List list =ArrayList();
       if(stu_xh!=""){    
           list = dbni.quexhjq(stu_xh,keywords,1);
        }
    if(stu_name!=""){    
           list = dbni.quexhjq(stu_xh,keywords,2);
        }if(stu_zy!=""){    
           list = dbni.quexhjq(stu_xh,keywords,3);
        }
       
            if(!list.isEmpty()){        
      %> 
      <%     for(int i=0;i<list.size();i++){
            stubean stb = (stubean)list.get(i);    
                
      %>    
        <tr class="tdhui">
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_xh()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_name()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_sex()%></td>
        //这里是直接显示专业名称
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=zyb.getstu_zymc()%></td>
       
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_nj()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_mz()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_sfzh()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_zzmm()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_addr()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_tel()%></td>
        <td height="22" align="center" bgcolor="#FFFFCC" ><%=stb.getstu_email()%></td>
       
        </tr>
       <%}%> 
      <% } %> <%// } %> <% //} %>
      </table>  <% } %>