CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

servlet中如何存放、传递、调用数据库中字段类型不同的数据集的问题----及不同类型对象的存取

楼主cleverfish(一只鱼)2002-04-03 09:23:19 在 Java / Web 开发 提问

比如我的一个表(AA)里有三个字段,ID,NAME,CONTENT;  
  字段类型分别为:int,varchar,ntext;----------及字段类型不同;  
  问:  
  我想通过一个servlet调用出表AA里的n条数据集,然后在jsp端一条一条纪录的显示出来,该如何处理?及如何将不同类型的多条对象先存放于某个集合,再能一一取出来??  
  请详细说明最好能举例示意。  
   
  ----针对相同类型的对象,我采用的是将各字段存入数组,然后将该数组代表的每个记录集通过循环放入Vector;不知此方法是否妥当,应该有更简便通用的方法吧?!  
   
  困扰几天了,谢谢了!:)  
  问题点数:100、回复次数:11Top

1 楼zjp009(高手)回复于 2002-04-03 09:31:14 得分 10

比如一个RECORD中有int,varchar,ntext,则:  
  ...  
  while(   oRst.next()   )  
  {  
              iInt   =   oRst.getInt("...");  
              str1   =   oRst.getString("...");  
              str2   =   oRst.getString("...");  
              ...  
  }  
   
  对于使用VECTOR来存储是可以的。Top

2 楼chenyuan_tongji(codeguru)回复于 2002-04-03 09:43:10 得分 10

如果是为了输出在页面上,则可以使用hashtable,用数据库表的filed   name做key,相应的值用getString取出来作为value。Top

3 楼pengji(彭乃超)回复于 2002-04-03 10:27:28 得分 30

可以用VECTOR,也可以自己做一个类里面方一条记录,并设置相应的GET,SET方法,当从数据库中取出几条记录就生成几个实例,最后放如一个VECTOR也可以的!Top

4 楼cleverfish(一只鱼)回复于 2002-04-03 10:27:35 得分 0

chenyuan_tongji(chenyuan_tongji)   的回答较贴近我问的意思,  
   
  还有没有详细点的,需要补充的?继续!Top

5 楼cleverfish(一只鱼)回复于 2002-04-03 10:33:29 得分 0

to   pengji(彭乃超):谢谢提醒!这方法是不是就是所谓的UserBean?!  
   
  另,和用hastable的区别、利弊是什么?Top

6 楼pengji(彭乃超)回复于 2002-04-03 14:08:13 得分 10

优点数据封装更清晰,一条记录是一个CLASS实例,缺点是效率比较底!Top

7 楼cleverfish(一只鱼)回复于 2002-04-03 18:53:05 得分 0

谁能提供一个简单、完整的示例吗!!!!谢谢!谢谢!Top

8 楼cleverfish(一只鱼)回复于 2002-04-04 11:05:25 得分 0

哪位大虾给个示例好吗??Top

9 楼pengji(彭乃超)回复于 2002-04-05 15:29:07 得分 40

package   com.hzs.order;  
   
   
   
  import   java.io.IOException;  
   
   
  import   java.sql.*;  
   
   
  import   java.util.Vector;  
   
   
  import   java.util.*;  
   
   
   
  public   class   DBHandle   {  
   
   
  //   Field  
   
   
      private   Vector   result   =   new   Vector();  
   
   
      private   Connection   conn   =   null;  
   
   
   
  //   Construct  
   
   
      public   DBHandle()   {  
   
   
      }  
   
   
   
  //   Connect   to   database  
   
   
      public   void   connect()   throws   DBException,   IOException   {  
   
   
          try   {  
   
   
              Class.forName("oracle.jdbc.driver.OracleDriver");  
   
   
              conn   =   DriverManager.getConnection("jdbc:oracle:thin:system/828112@192.9.200.50:1521:mydb");  
   
   
          }   catch(ClassNotFoundException   E)   {  
   
   
              throw   new   DBException("Connnect:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(SQLException   E)   {  
   
   
              throw   new   DBException("SQLException:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(Exception   E)   {  
   
   
              throw   new   DBException("Exception:   "   +   String.valueOf(E.getMessage()));  
   
   
          }  
   
   
      }  
   
   
   
      public   void   transaction()   throws   DBException,   IOException   {  
   
   
          try   {  
   
   
              conn.setAutoCommit(false);  
   
   
          }   catch(SQLException   E)   {  
   
   
              throw   new   DBException("SQLException:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(Exception   E)   {  
   
   
              throw   new   DBException("Exception:   "   +   String.valueOf(E.getMessage()));  
   
   
          }  
   
   
      }  
   
   
   
  //   Executes   a   SQL   statement   that   returns   a   single   ResultSet.  
   
   
      public   Vector   select(String   strQuery)   throws   DBException,   IOException   {  
   
   
          result   =   new   Vector();  
   
   
   
          try   {  
   
   
              Statement   stmt   =   conn.createStatement();  
   
   
              ResultSet   rs   =   stmt.executeQuery(strQuery);  
   
   
              ResultSetMetaData   rsmd   =   rs.getMetaData();  
   
   
              int   FieldNum   =   rsmd.getColumnCount();  
   
   
   
              while   (rs.next())   {  
   
   
                  for   (int   i   =   1;   i   <=   FieldNum;   i   ++)  
   
   
                      result.addElement(rs.getString(i));  
   
   
              }  
   
   
   
              rs.close();  
   
   
              stmt.close();  
   
   
          }   catch(SQLException   E)   {  
   
   
              throw   new   DBException("SQLException:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(Exception   E)   {  
   
   
              throw   new   DBException("Exception:   "   +   String.valueOf(E.getMessage()));  
   
   
          }  
   
   
          return   result;  
   
   
      }  
   
   
   
  //   Executes   an   SQL   INSERT,   UPDATE   or   DELETE   statement.  
   
   
      public   int   update(String   strUpdate)   throws   DBException,   IOException   {  
   
   
          int   stmtInt=-1;  
   
   
  try   {  
   
   
              Statement   stmt   =   conn.createStatement();  
   
   
              stmtInt   =   stmt.executeUpdate(strUpdate);  
   
   
              stmt.close();  
   
   
          }   catch(SQLException   E)   {  
   
   
              throw   new   DBException("SQLException:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(Exception   E)   {  
   
   
              throw   new   DBException("Exception:   "   +   String.valueOf(E.getMessage()));  
   
   
          }  
   
   
  return   stmtInt;  
   
   
      }  
   
   
   
  //   commit  
   
   
      public   void   commit()   throws   DBException,   IOException   {  
   
   
          try   {  
   
   
              conn.commit();  
   
   
          }   catch(SQLException   E)   {  
   
   
              throw   new   DBException("SQLException:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(Exception   E)   {  
   
   
              throw   new   DBException("Exception:   "   +   String.valueOf(E.getMessage()));  
   
   
          }  
   
   
      }  
   
   
   
  //   rollback  
   
   
      public   void   rollback()   throws   DBException,   IOException   {  
   
   
          try   {  
   
   
              conn.rollback();  
   
   
          }   catch(SQLException   E)   {  
   
   
              throw   new   DBException("SQLException:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(Exception   E)   {  
   
   
              throw   new   DBException("Exception:   "   +   String.valueOf(E.getMessage()));  
   
   
          }  
   
   
      }  
   
   
   
  //   close  
   
   
      public   void   close()   throws   DBException,   IOException   {  
   
   
          try   {  
   
   
              conn.close();  
   
   
          }   catch(SQLException   E)   {  
   
   
              throw   new   DBException("SQLException:   "   +   String.valueOf(E.getMessage()));  
   
   
          }   catch(Exception   E)   {  
   
   
              throw   new   DBException("Exception:   "   +   String.valueOf(E.getMessage()));  
   
   
          }  
   
   
      }  
   
   
   
      public   static   String   toChinese(String   strValue)   {  
   
   
          try   {  
   
   
              if   (strValue   ==   null)  
   
   
                  return   null;  
   
   
              else  
   
   
                  return   new   String(strValue.getBytes("8859_1"),   "gb2312");  
   
   
          }   catch(Exception   e)   {  
   
   
              return   null;  
   
   
          }  
   
   
      }  
   
   
   
      public   static   float   toFloat(String   str){  
   
   
          return   Float.parseFloat(str);  
   
   
      }  
   
   
  }  
   
   
   
   
   
   
  package   com.hzs.order;  
   
   
   
  public   class   DBException   extends   Exception   {  
   
   
      public   DBException(String   desc)   {  
   
   
          super(desc);  
   
   
      }  
   
   
  }  
   
  Top

10 楼chenyuan_tongji(codeguru)回复于 2002-04-05 20:10:07 得分 0

楼上的代码我粗粗的看了一下,重点看一下public   Vector   select(String   strQuery)这个method就可以了。Top

11 楼cleverfish(一只鱼)回复于 2002-04-08 13:29:10 得分 0

谢谢各位,尤其是:pengji(彭乃超),我也找到了一些方法。结账!Top

相关问题

  • 如何存取Oracle Number(18)的字段?
  • 如何存取LONG RAW字段?谢谢
  • 难,难,难! 线程中存取BLOB字段,请赐教......
  • ******怎样在access中存取图形字段? ****** 急死是我了
  • 怎样同时存取多个text和image字段?
  • ADO如何存取Access 2000中的OLE字段(Word文档)
  • SQL SERVER 的image类型的字段如何存取?
  • 请问:QL SERVER 的image类型的字段如何存取?
  • 往数据库中存取BLOB字段内容
  • 用ADO如何存取ACCESS数据库的DATETIME字段?

关键词

  • 字段
  • 数据库
  • vector
  • 数据
  • 类型
  • dbexception
  • orst
  • valueof
  • 对象
  • 不同

得分解答快速导航

  • 帖主:cleverfish
  • zjp009
  • chenyuan_tongji
  • pengji
  • pengji
  • pengji

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo