当前位置:网站首页>根据SQL语句查询出的结果集,将其封装为json
根据SQL语句查询出的结果集,将其封装为json
2022-04-23 05:45:00 【dawnsun001】
根据SQL语句查询出的结果集,将其封装为json
例如:
1.select id,username,password,sex from user where id=11
{id:1,username:'jibs',password:'ssdfsdfsfwe',sex:'男'}
/**
* 通过sql查询结果封装成json
* <br />
* <p>Example:</p>
* <code>String sql = "select id,username,password,sex from user where id=12";</code>
* @param sql 查询SQL
* @return {"id":"1","username":"jibs","password":"ssdfsdfsfwe","sex":"男"}
*/
代码:
package com.dawnsun.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class TestSql2Json {
public static void main(String args[]) throws JSONException{
Connection conn = null;
Statement stat = null;
String url = "jdbc:mysql://localhost:3306/databasename";
String sql ="select * from student";
ResultSet rs = null;
JSONArray array = null;
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url,"username","password");
stat = conn.createStatement();
rs = stat.executeQuery(sql);
// json数组
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);
}
//通过key获取每个对应value
for(int j=0;j<array.length();j++){
for(int i=1;i<columnCount;i++){
String columnName =metaData.getColumnLabel(i);
JSONObject resultObj = array.optJSONObject(j);
//获取数据项
String value = resultObj.getString(columnName);
logger.info(value);
}
}
//测试json数据的条数
// int ii = array.length();
rs.close();
} catch (Exception e) {
logger.error(e.getMessage());
}
return array.toString();
}
版权声明
本文为[dawnsun001]所创,转载请带上原文链接,感谢
https://blog.csdn.net/dawnsun2013/article/details/19625619
边栏推荐
- RPC must know and know
- Motor and drive (Qi Jinqing Edition)
- Comparative study paper - [Moco, cvpr2020] momentum contract for unsupervised visual representation learning
- 3. Continuous integer
- Guaba and Computational Geometry
- POI and easyexcel exercises
- Troubleshooting of data deleted and reappeared problems
- 4. Print form
- Rust 中的 Cell 共享可变指针
- List segmentation best practices
猜你喜欢

Robocode教程3——Robo机器剖析

Kibana search syntax

SQL -- data definition

Addition, deletion, modification and query of MySQL table

A sharp tool to improve work efficiency

Delete and truncate

IO multiplexing of 09 redis

Kalman filter and inertial integrated navigation

Motor and drive (Qi Jinqing Edition)

Why does the subscript of the array start from 0 instead of 1?
随机推荐
Stability building best practices
JDBC tool class encapsulation
Exception handling: grab and throw model
SQL optimization best practices
Rainbow (DP)
小区房价可视化
Preparedstatement prevents SQL injection
深拷贝和浅拷贝的区别
Framework analysis 2 Source code - login authentication
Rust 中的 Rc智能指针
H. Are You Safe? Convex hull naked problem
selenium+webdriver+chrome实现百度以图搜图
Generation of verification code
Log4j2跨线程打印traceId
Database - sorting data
Calculation (enter the calculation formula to get the result)
Techniques et principes de détection
Code neat way to learn
Understanding and installing MySQL
SVN简单操作命令