url = "jdbc:oracle:thin:@192.168.0.2:1521:ntrsit01";
user = "ntrown";
password = "ntrsit01";
try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      conn = DriverManager.getConnection(url, user, password);
    } catch (Exception e) {
      e.printStackTrace();
    }
Statement st = null;
    try {
      st = conn.createStatement();
      ResultSet rs = st.executeQuery("select TNAME from tab");
} catch (Exception e) {
      e.printStackTrace();
}不知道你怎么做的

解决方案 »

  1.   

    我也是这样写的啊/估计问题可能在getString上,以下是我的代码:<%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
    String url="jdbc:oracle:thin:@192.168.139.111:1521:bjh"; 
    //orcl为你的数据库的SID 
    String user="user"; 
    String password="123456"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from h_hotel"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    第一字段:<%=rs.getInt(1)%>
    第二字段:<%=rs.getString(2)%> 
    第三字段:<%=rs.getString(3)%>
    <br> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%
    rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
      

  2.   

    同时如何向现在的数据库插入一条新记录。要sql语句。我用insert into h_hotel values(1,'11','22','33')他提示无效的列,但是我这样也不可以insert into h_hotel(f1,f2,f3,f4) values(1,'11','22','33')求救!!如果是变量a1,a2,a3,a4如何写这句话insert!!
      

  3.   

    你的插入语句应该没有问题,给出你的数据库字段类型来看看。会不会有列是由序列来控制的?另如果直接在页面上用<%=rs.getString(3)%>显示的时候要小心内容中有  "<" ">"等这些HTML标记的存在。
    所以最好改为 
      if (rs.getString(3) != null)
      {
        out.print(rs.getString(3));
      }另外会不会是在JSP页面上没有加 
    request.setCharacterEncoding("GB2312");  contentType="text/html; charset=GB2312"
    的原因。
      

  4.   

    ★ 原因不大可能。  
    另外会不会是在JSP页面上没有加 
    ----request.setCharacterEncoding("GB2312");  contentType="text/html; charset=GB2312"
    的原因。★ 现在的数据类型是:第一个字段是number型,第二、三、四是char类型,问题也应该不会在这里。再说我用odbc数据源连接就可以正确显示
    ----你的插入语句应该没有问题,给出你的数据库字段类型来看看。会不会有列是由序列来控制的?
      

  5.   

    很可能是你的jdbc版本太旧了。
    试试下载一个新的版本代替原来的版本看。我以前也遇到过类似的问题,后来用新的JDBC就解决了。
      

  6.   

    请问你是用Tomcat执行jsp的么?
    是什么版本?
      

  7.   

    这个我遇到过,出问题的语句就是
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    如果你写成
    Statement stmt=conn.createStatement();
    显示的结果就会变成正常,不过设置的游标不能回滚
    据说是jdbc的问题
    从网上下一个比较新的jdbc就行了
      

  8.   

    好了,文字是可以显示了,但是
    while(rs.next()) 
    语句本来就是一条记录,现在却显示了两条其中有一条为空却也显示出来了。
    顺便,哪个地方能有新的jdbc的下载,我现在用的是class1es2.zip
      

  9.   

    具体的现象是:where语句本来约束成了一条记录比如在一行显示,但是显示出来的就两行显示,第二行是空行。这样表格就变形了啊。
    如何解决。