歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

struts返回json數據時返回的數據重復

使用struts架構使用自帶的json包返回json數據時發現重復,代碼改正後解決,如下:具體原因還是沒有太清楚!記錄下。

ResultSet rs=null;

      GroupPurchasePackage groupPurchaseObj=new GroupPurchasePackage();

      try {

          conn=DBUtilsC3P0.getInstance().getConnection();

          ps=conn.prepareStatement(sql);

          rs=ps.executeQuery();

          while(rs.next()){

      groupPurchaseObj.setId(Integer.parseInt(rs.getString("id")));

 

ResultSet rs=null;

     

      try {

          conn=DBUtilsC3P0.getInstance().getConnection();

          ps=conn.prepareStatement(sql);

          rs=ps.executeQuery();

          while(rs.next()){

             

              GroupPurchasePackage groupPurchaseObj=new GroupPurchasePackage();

              groupPurchaseObj.setId(Integer.parseInt(rs.getString("id")));


GroupPurchasePackage groupPurchaseObj=new GroupPurchasePackage();

在這裡GroupPurchasePackage不能首先實例化 要在rs.next有結果的時候在實例化,不然當你返回值的時候一直都有值,只是並未被賦值而已rs是結果集。查詢出的記錄是一個列表,初始時指針指向的是第一條記錄之前的。每rs.next()一次指針都會向後移動一位,指向下一條記錄。如果沒有設置結果集的參數,那麼正常情況下結果集都只能往下走,不能退回,也就是rs.next()後,是不能再指向已經指過的記錄了,但是如果設置了conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);那麼就可以使用rs.first()、rs.last()等方法自己移動結果集指針,但是這種特性(可滾動結果集)是需要數據庫支持的,好在現在大部分數據庫都是支持的。rs.first();//如果有記錄,再將指針指向第一條(需要設置結果集類型)

Copyright © Linux教程網 All Rights Reserved