我是用Oracle的图形界面工具放入的数据
而且自己写了一个DELPHI用ADO连ORACLE的工具就没有问题
唯独就是JSP变成了这样,不知道JSP出了什么问题
这是JSP文件的源码:<%@page import="java.sql.*" 
import ="java.util.*" 
import ="java.io.*" 
contentType="text/html; charset=GBK" 
%><html> 
<head> 
<title>使用Oracle数据库</title> 
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"> 
<meta name="ProgId" content="FrontPage.Editor.Document"> 
</head> 
<body> 
<p align="center"><u><font size="5" face="楷体">使用JSP读取Oracle数据库</font></u></p> 
<%!   public static String toChinese(String strvalue)
  {
    try
    {
      if(strvalue==null)
      {
        return null;
      }
      else
      {
        strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
        return strvalue;
      }
    }
    catch(Exception e)
    {
      return null;
    }
  }%><%
java.sql.Connection sqlConn; //数据库连接对象 
java.sql.Statement sqlStmt; //语句对象 
java.sql.ResultSet sqlRst; //结果集对象 
//登记JDBC驱动对象 
Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance (); 
//连接数据库
sqlConn= java.sql.DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:mydb","AdminUser","12345");
//创建语句对象 
sqlStmt=sqlConn.createStatement (java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); 
//执行Sql语句 
String sqlQuery="select count(*) from testtable"; 
sqlRst=sqlStmt.executeQuery (sqlQuery); 
sqlRst.next(); 
int count=sqlRst.getInt(1); //取得总的留言记录数 
sqlQuery="select * from testtable"; 
sqlRst=sqlStmt.executeQuery (sqlQuery); //执行SQL语句 
%> 
总共有<%=count%>条留言 
<table border="1" width="100%" bordercolorlight="#CC99FF" cellpadding="2" bordercolordark="#FFFFFF" cellspacing="0"> 
<tr> 
  <td align="center">ID</td> 
  <td align="center">Name</td> 
</tr> <%
while (sqlRst.next()) { //取得下一条记录
%><tr><!--显示记录-->
  <td><%=sqlRst.getString("ID")%></td> 
  <td><%=toChinese(sqlRst.getString("Name"))%></td> 
</tr> 
<% } %> 
</table> 
</body> 
<% 
//关闭结果集对象 
  sqlRst.close(); 
  //关闭语句对象 
sqlStmt.close (); 
//关闭数据库连接 
sqlConn.close(); 
%>

解决方案 »

  1.   

    TO:xiao_mi(宝祯) 数据库里面存储的是char字符我用Oracle其它工具打开就能够看到字符,例如"1"
    而且我自己用DELPHI写了一个小程序也可以正常连接数据库
    就是JSP出了毛病,不知道为什么数据库结构
    "ID" CHAR(4) NOT NULL, "NAME" CHAR(8), UNIQUE(ID)
      

  2.   

    是否是Oracle字符集问题.检查一下如果是英文字符集的话要转一下
      

  3.   

    谢谢各位,问题找到了
    sqlStmt=sqlConn.createStatement (java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); 
    需要修改为
    sqlStmt=sqlConn.createStatement(); 为什么?暴郁闷
      

  4.   

    晕,我试了一下,加上java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY 也没有问题呀,见鬼啦,见鬼啦