使用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();//如果有記錄,再將指針指向第一條(需要設置結果集類型)