首页 > 代码库 > 几种通过JDBC操作数据库的方法,以及返回数据的处理

几种通过JDBC操作数据库的方法,以及返回数据的处理

1.SQL TO String :只返回一个查询结果

  例如查询某条记录的总数

           rs = stmt.executeQuery(replacedCommand);
             if (rs != null && rs.next()) // rs only contains one row and one column
             {
                    String tempStr = rs.getString(1);
                    if (tempStr == null)
                    {
                        result = "";
                    } else
                    {
                        result = rs.getString(1);
                    }

    }

2.SQL TO Object :返回的是类似某个对象的记录,即很多条字段

  例如,查询某个用户的所有订单,并反射到对象中去

  className 为你要映射的对象的名字

           Document xmlContentDoc = null;
           OracleXMLQuery xmlQuery;
             rs = stmt.executeQuery(replacedCommand);

             xmlQuery = new OracleXMLQuery(conn, rs);
             xmlQuery.setRowTag(className);
              xmlContentDoc = xmlQuery.getXMLDOM();
            checkDocumentErrors(xmlContentDoc, xmlQuery.ERROR_TAG);
           
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer transformer=null;
            DOMSource source=null;
            StreamResult result=null;
            transformer = tFactory.newTransformer();
              
            //get all tags with class name equal to "className"
            NodeList rows=xmlContentDoc.getElementsByTagName(className);
        
            //loop on the row and make objects that map to the selected row elements
            for(int i=0;i<rows.getLength();i++)
            {
                Element row = (Element)rows.item(i);
                row.removeAttribute("num");             
                StringWriter sw=new StringWriter();
                source = new DOMSource(row);
                result = new StreamResult(sw);
                transformer.transform(source, result);
                String xmlString=sw.toString();
                sw.close();               
                Object inputObj=Class.forName(className).newInstance();
                Converter converter=Converter.getInstance();       
                Object OutputObj=converter.convertToObject(xmlString,inputObj);
                outputResult.add(OutputObj);
            }

3.SQL TO Map:这种查询的是2个字段,其中一个作为key,另一个字段作为value

              rs = stmt.executeQuery(replacedCommand);
              if(rs != null)
              {                                      
                    ResultSetMetaData metadata;
                    int coloumnNo = 0;                   
                    metadata = http://www.mamicode.com/rs.getMetaData();
                    coloumnNo = metadata.getColumnCount();
                    Object tempKey,tempValue;
                    while(rs.next())
                    {
                        //if the number of coloumns =1 make the in the hashtable the key and value are the same                     
                        if(coloumnNo == 1)
                        {          
                            tempKey=rs.getObject(1);                           
                            if(tempKey==null)   tempKey="";
                            tempValue=http://www.mamicode.com/tempKey;
                            tempKey= (tempKey instanceof CLOB) ? rs.getString(1) : tempKey.toString().trim();
                            tempValue=http://www.mamicode.com/tempKey;
                            result.put(tempKey,tempValue);                           
                        }else
                        {                           
                            tempKey=rs.getObject(1);
                            tempValue=http://www.mamicode.com/rs.getObject(2);
                            if(tempKey==null)   tempKey="";
                            if(tempValue=http://www.mamicode.com/=null) "";
                            tempKey=(tempKey instanceof CLOB) ? rs.getString(1) : tempKey.toString().trim();
                            tempValue=http://www.mamicode.com/(tempValue instanceof CLOB) ? rs.getString(2) : >                            result.put(tempKey,tempValue);
                        }//else                   
                    }//while              
              }

4.  明天待续!