Java数据库ResultSet转json实现

现在有很多json相关的Java工具,如json-lib、gson等,它们可以直接把JavaBean转换成json格式。

在开发中,可能会从数据库中获取数据,希望直接转成json数组,中间不通过bean。

比如进行下面的转换:

数据表:

id

name

age

1

xxg

23

2

xiaoming

20

转换成json数组:

[
            {
               "id": "1",
                "name":"xxg",
                "age": "23"
            },
            {
               "id": "2",
                "name":" xiaoming",
                "age":"20"
            }
]

实现很简单,就是把查询结果ResultSet的每一条数据转换成一个json对象,数据中的每一列的列名和值组成键值对,放在对象中,最后把对象组织成一个json数组。

[java] view plaincopyprint?

  1. public String resultSetToJson(ResultSet rs) throws SQLException,JSONException

  2. {  
  3. // json数组
  4. JSONArray array = new JSONArray();  
  5. // 获取列数

  6. ResultSetMetaData metaData = rs.getMetaData();  
  7. int columnCount = metaData.getColumnCount();  
  8. // 遍历ResultSet中的每条数据

  9. while (rs.next()) {  
  10. JSONObject jsonObj = new JSONObject();  
  11. // 遍历每一列

  12. for (int i = 1; i <= columnCount; i++) {  
  13. String columnName =metaData.getColumnLabel(i);  
  14. String value = rs.getString(columnName);  
  15. jsonObj.put(columnName, value);  
  16. }   
  17. array.put(jsonObj);   
  18. }  
  19. return array.toString();

  20. }
    public String resultSetToJson(ResultSet rs) throws SQLException,JSONException
    {
       // json数组
       JSONArray array = new JSONArray();

       // 获取列数
       ResultSetMetaData metaData = rs.getMetaData();
       int columnCount = metaData.getColumnCount();

       // 遍历ResultSet中的每条数据
        while (rs.next()) {
            JSONObject jsonObj = new JSONObject();

            // 遍历每一列
            for (int i = 1; i <= columnCount; i++) {
                String columnName =metaData.getColumnLabel(i);
                String value = rs.getString(columnName);
                jsonObj.put(columnName, value);
            }
            array.put(jsonObj);
        }

       return array.toString();
    }

上面的代码只需要用到org.json的jar包,网上随处可下载。

作者:叉叉哥   转载请注明出处:http://blog.csdn.net/xiao__gui/article/details/8612503

时间: 2024-08-24 17:56:30

Java数据库ResultSet转json实现的相关文章

Java数据库——ResultSet接口

使用SQL中的SELECT语句可以查询出数据库的全部结果,在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容. 从user表中查询数据 //================================================= // File Name : MySQL_demo //---------------------------------------------------------------------------

一个关于java数据库驱动包的小发现

之前一直都在用数据库的驱动jar包,却没有仔细看过.只知道Class.forName();去装载驱动类. 今天无意间想到Class.forName();不就是装载类嘛,难道引用的jar包里的类不会在虚拟机启动的时候被直接装载嘛? 然后写了点代码做了测试: 1 package com.mariadb.test; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet;

Java数据库增删改查

数据库为MySQL数据库,Oracle数据库类似: create database db_test;--创建数据库 create user user_test@localhost identified by '123456';--创建用户 grant all privileges on db_test.* to user_test@localhost;--给用户授予权限 use db_test; create table tb_Test( pk_Test_ID char(10) primary

JAVA数据库编程(JDBC技术)-入门笔记

本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学习一下.我现在很迫不及待用JAVA想来实现以下对数据库的增删改查.想实现就来看Java是怎么操作数据库的,回想下.Net里你可能会配置web.Config,或者你去写一些DBhelper类然后调用里面的自己定义的一些增删改查的方法,更或者你去配一些数据控件等等往往发现操作基本都是一体化的简单.现在面

java 数据库 常规select操作

package py.db.com; import java.awt.List; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayL

JAVA数据库技术

2016-11-03 JDBC(java Database connection,)是一种用于执行SQL语句的API,他是有一些java语言写的类和界面组成,他提供了了标准的应用程序接口,是开发人员可以将SQL语句传递给任何一种数据库,无需为各种数据库编写单独的访问程序 1) 与一个数据库建立连接. Connection con = DriverManager.getConnection("jdbc:odbc:CallCenter","sa",""

JAVA数据库应用的一个小例子

自己随便写的,以炉石为背景,写一个参考用的小例子,先上SQL表: if OBJECT_ID('card_pool') is not null drop table card_pool; create table card_pool( card_id int identity(1,1) not null, card_name varchar(32), card_occupation varchar(32), --卡牌职业:中立.德鲁伊.猎人.法师.圣骑士.牧师.潜伏者.萨满祭司.术士.战士 car

Java知多少(111)几个重要的java数据库访问类和接口

修改数据表记录也有3种方案. 一.使用Statement对象 实现修改数据表记录的SQL语句的语法是:    update表名 set 字段名1 = 字段值1,字段名2 = 字段值2,……where特定条件例如: update ksInfo set 姓名 = ‘张小卫’where 姓名 = ‘张大卫’ 先创建一个SQL语句,然砶调用Statement对象的executeUpdate()方法.例如, 1 sql = “update ksInfo set 姓名 = ‘”+txtName.getTex

java数据库查询结构

//获取数据表结构 public static void getConnAndTableStruct(){        Connection connection = null;        PreparedStatement pstmt = null;        ResultSetMetaData rsmd = null;        try {            //mysql连接             Class.forName("org.gjt.mm.mysql.Driv