首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于JSP中SQL语句值在页面中的显示有关问题

2011-12-30 
关于JSP中SQL语句值在页面中的显示问题。在连接数据库执行完sql语句后,要把查询的值在JSP 页面中显示出来。

关于JSP中SQL语句值在页面中的显示问题。
在连接数据库执行完sql语句后,要把查询的值在JSP 页面中显示出来。但是出现当查询语句出现表与表之间属性关联的就无法在页面中显示查询结果。
比如简单对单个表进行查询输出。如下面的可以在网页中正常显示:

Java code
<%String dbDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";String dbURL="jdbc:sqlserver://localhost:1433;databaseName=classroom;user=sa;password=19881206";Connection conn = null;Statement stmt= null;String sql = null;ResultSet rs = null;String str=request.getParameter("CRno");  try{  Class.forName(dbDriver);  conn=DriverManager.getConnection(dbURL);  stmt=conn.createStatement();  sql="SELECT CRno,Capacity FROM classroom where classroom.CRno='"+str+"'";  rs=stmt.executeQuery(sql);  %>  <center>  <table border=2>  <caption>教室信息</caption>  <tr>  <th>教室编号</th><th>教室容量</th>  </tr>  <%while(rs.next()){ %>  <tr>     <td><%=rs.getString("CRno")%></td>     <td><%=rs.getString("Capacity")%></td>     </tr>     <%}       conn.close();      }      catch(SQLException e)      {System.out.println(e);      }      %>



此页面能够正常的把CRno与Capacity 在table中显示出来
但是下面的就只是把table都头显示出来了,查询出来的内容没有显示。下面是通过teacher表中的Tname进行查询,把teacher表与teach_course表通过teacher.Tno=teach_course.Tno关联,course表与teach_course表通过course.Cno=teach_course.Cno关联。teacher表与dept表通过teacher.Deptno=dept.Deptno关联。查询出Deptname,Ttitle,Cname,CRno等。。

(查询语句已经查询通过,但是页面不显示查询结果)


Java code
<%  String dbDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";  String dbURL="jdbc:sqlserver://localhost:1433;databaseName=classroom;user=sa;password=19881206";  Connection conn = null;  Statement stmt= null;  String sql = null;  ResultSet rs=null;  String str;  str=request.getParameter("Tname");  try{        Class.forName(dbDriver);        conn=DriverManager.getConnection(dbURL);        stmt=conn.createStatement();        sql="select Tname,Deptname,Ttitle,Cname,CRno,Weekday,Period from teacher,teach_course,course,dept where teacher.Tno=teach_course.Tno and teacher.Deptno=dept.Deptno and teach_course.Cno=course.Cno and teacher.Tname='"+str+"'";        rs=stmt.executeQuery(sql);        %>  <center>  <table border=2>      <caption>教师开课信息</caption>      <tr><th>教师姓名</th><th>所属院系</th><th>职称</th><th>课程名</th><th>上课地点<th>上课时间</th><th>节次</th>      </tr>      <%while(rs.next()) {%>        <tr>          <td><%=rs.getString("Tname")%></td>          <td><%=rs.getString("Deptname")%></td>          <td><%=rs.getString("Ttitle")%></td>          <td><%=rs.getString("Cname")%></td>          <td><%=rs.getString("CRno")%></td>          <td><%=rs.getString("Weekday")%></td>          <td><%=rs.getString("Period")%></td>       </tr>       <%}       conn.close();       }catch(SQLException e)       {       System.out.println(e);       }       %>


哪位能够解释下为什么啊,给个好的显示方法也行啊!万分感谢!

[解决办法]
<%=rs.getString("Tname")%></td>
<td><%=rs.getString("Deptname")%></td>
<td><%=rs.getString("Ttitle")%></td>
<td><%=rs.getString("Cname")%></td>
<td><%=rs.getString("CRno")%></td>


<td><%=rs.getString("Weekday")%></td>
<td><%=rs.getString("Period")%></td>
确定这些字段名和数据库里的一致?

一般不建议在jsp中写这么多java代码
[解决办法]
<%=rs.getString("Tname")%></td>
<td><%=rs.getString("Deptname")%></td>
<td><%=rs.getString("Ttitle")%></td>
<td><%=rs.getString("Cname")%></td>
<td><%=rs.getString("CRno")%></td>
<td><%=rs.getString("Weekday")%></td>
<td><%=rs.getString("Period")%></td>
确定这些字段名和数据库里的一致?

[解决办法]
建议 写一个servlet 在写一个bean
bean对数据库操作 返回结果集然后在转为实体类在添加进List或其他 中如:类.set...();
在servlet对bean进行调用 把返回的List集合(里面存放着实体类对象 从数据库查询的到) 用request.setAttribute("",);的形式传到jsp页面 在jsp页面判断后 输出即可...
[解决办法]
select Tname,Deptname,Ttitle,Cname,CRno,Weekday,Period from teacher,teach_course,course,dept where teacher.Tno=teach_course.Tno and teacher.Deptno=dept.Deptno and teach_course.Cno=course.Cno and teacher.Tname='"+str+"'";
这个SQL你确定没问题吗?str的值是否正确?
如果是正确的,那么没有显示,绝对控制台抛出了异常!
但是你只给出了代码,我无法做判断。
还有,stmt、rs为什么都不关掉,而只关了conn

热点排行
Bad Request.