歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> struts返回json數據時返回的數據重復

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

日期:2017/3/1 10:08:38   编辑:Linux編程

使用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