几种通过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 =
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=tempKey;
                           
tempKey= (tempKey instanceof CLOB) ? rs.getString(1) :
tempKey.toString().trim();
                           
tempValue=tempKey;
                           
result.put(tempKey,tempValue);                           

                       
}else
                       
{                           

                           
tempKey=rs.getObject(1);
                           
tempValue=rs.getObject(2);
                           
if(tempKey==null)  
tempKey="";
                           
if(tempValue==null)  
tempValue="";
                           
tempKey=(tempKey instanceof CLOB) ? rs.getString(1) :
tempKey.toString().trim();
                           
tempValue=(tempValue instanceof CLOB) ? rs.getString(2) :
tempValue.toString().trim();
                           
result.put(tempKey,tempValue);
                       
}//else                   

                   
}//while              

             
}

4.  明天待续!

  

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

时间: 2024-08-06 11:56:50

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

封装JDBC操作数据库的方法

自己动手封装java操作数据库的方法: 一:目录结构 二:所需依赖的第三方jar包 这里只需引入mysql-connector-java-5.1.8-bin.jar,mysql数据库驱动jar包 三:代码 1:和数据库进行交互,首先是数据源,获取连接,代码如下: 1 /** 2 * 3 */ 4 package com.hlcui.datasource; 5 6 import java.sql.Connection; 7 import java.sql.DriverManager; 8 impo

jdbc操作数据库通用方法

第一步:需要的jar包是ojdbc14.jar 第二步:需要配置jdbc.properties(放在src目录下) 具体配置如下(以oracle数据库为例) 如果是mysql 1.需要替换jar包 2.替换url和driver 一般url=jdbc:mysql://localhost:3306/database; driver=com.mysql.jdbc.Driver url=jdbc:oracle:thin:@127.0.0.1:1521:orcl driver=oracle.jdbc.dr

JDBC操作数据库的三种方式比较

JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL.oracle.DB2等关系型数据库均是通过JDBC来访问的,现在主流的ORM框架Hibernate.Mybatis等均是在JDBC的基础上做的进一步封装.优化.一般小型的项目,可以直接用JDBC来访问数据库,简单方便.我在进过几个项目后,总结了三总JDBC的基本用法,对这几种用法做一个总结. 第一种

JDBC操作数据库的学习(1)

单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的连接驱动,应用程序通过这些驱动来操作数据库: 但是这里就又有一个问题了,不同的数据库有各自的驱动程序,而一个应用程序要操作不同的数据库,那么就要懂得要使用的数据库的驱动如何操作,这样就增加了学习成本.好在我们使用Java开发应用,而Java中只需要使用JDBC就能操作所有的数据库,因为JDBC提供的

用ADO操作数据库的方法步骤(ZT)

http://www.cppblog.com/changshoumeng/articles/113437.html 学习ADO时总结的一些经验 用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针. 通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程.使用_ConnectionPtr接口返回一个

JDBC操作数据库的学习(2)

在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本篇就在简单开发中如何对上一篇的例子进行“升级”,满足简单开发中对数据库的增删改查(CRUD). 如果按照上一篇中的例子,那么我们在做增删改查的话将会出现每个方法都要获取连接,释放资源,代码会出现很大的重复性,因此我们应该将每个增删改查每个方法中可以复用的代码抽取出来,同时为了能切换数据库方便,也该将一些配置信

一种远程修改sqlite数据库的方法

一.实际需求 工业设备DA660是专门用来实现工业上可编程设备之间交换信息的交换机.现在要使得DA660采集下行设备的实时数据,然后传送到上位机显示.上位机还可以远程修改DA660的数据库配置. 二.数据库设计 我在DA660中设计了sqlite3数据库,名为da660.db,里面存放很多表,其中有一张表示baseinfo,其结构定义如下: 通道号是从0到15之间的正整数,从机地址是从0到256之间的正整数,设备类型定义为0到5之间的正整数,设备类型可从{"xz2000", "

用ADO操作数据库的方法步骤

用ADO操作数据库的方法步骤 学习ADO时总结的一些经验 - 技术成就梦想 - 51CTO技术博客 http://freetoskey.blog.51cto.com/1355382/989218 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针. 通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程.使用_Connecti

Spark Streaming通过JDBC操作数据库

本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Streaming也提供了两种API与之对应,其中spark-streaming-kafka-0-8支持Kafka 0.8.2.1以后的Broker:spark-streaming-kafka-0-10支持0.10.0以上Broker,处于实验阶段.两者的对比如下表所示. |spark-streaming-ka