getConn = JdbcDataBaseUtil.getConnection(user,pwd,serverUrl,mysqDriver);
//建立一个结果集,用来保存查询出来的结果
ResultSet rs = getConn.prepareStatement(sql).executeQuery();
ResultSetMetaData metaData = rs.getMetaData(); // 获得列的结果
  
//在写到利用数据库查询数据的时候,会用到的语句rs.last()和rs.beforeFirst(),这俩个方法会报错,原因是微软的SQL没有这个方法,需要额外添加语句。sqlserver
ResultSet rs = getConn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY).executeQuery();
int cols_len = metaData.getColumnCount(); // 获取总的列数  System.err.println("-------------------核心期刊-------------------------"); for (int i = 0; i < cols_len; i++) { String col_name = metaData.getColumnName(i + 1); // 获取第 i列的字段名称  System.err.println("核心期刊字段:"+col_name); } 

          
//并不是所有的JDBC驱动都支持rs.last(),rs.getRow()方法的。
//比如微软的SQLServer驱动就不支持
          rs.last();//最后一条数据
                if(rs.getRow()==0){
                         System.out.println("数据库存储记录为空++++++++++++++++++++++");
                }else {
                    standardTime=rs.getString("visitdate");//最后一条数据的时间字段数据
                }

数据转成MAP

package com.rscode.dataanalysis.controller.hadooplog.system;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.rscode.dataanalysis.util.JdbcDataBaseUtil; /**
* 资源管理系统
* @author tn
*
*/
//@Component//对那些比较中立的类进行注释
@Controller
@PropertySource({"classpath:database.properties","classpath:taskcron.properties"})
@Async
public class ResourceManagerSystem {
@Value("${resourceManager.userName}")
private String user;
@Value("${resourceManager.password}")
private String pwd;
@Value("${resourceManager.url}")
private String serverUrl;
@Value("${sqlserver.driver}")
private String orclDriver;
@Value("${resourceManager.tableLogSql}")
private String Sql1; // @Scheduled(cron = "${task.system.credit.crontime}")//每分钟进行一次 0 * * * * ?
@RequestMapping("/rmSystem")
@ResponseBody
public List<Map<String,Object>> rmSystem() {
List<Map<String,Object>> results=new ArrayList<Map<String,Object>>();
Connection getConn=null;
String sql = Sql1;
try {
getConn = JdbcDataBaseUtil.getConnection(user, pwd, serverUrl, orclDriver);
//建立一个结果集,用来保存查询出来的结果
ResultSet rs = getConn.prepareStatement(sql).executeQuery();
ResultSetMetaData metaData = rs.getMetaData(); // 获得列的结果 List<String> colNameList=new ArrayList<String>();
int cols_len = metaData.getColumnCount(); // 获取总的列数
System.err.println("--------------------------------------------");
for (int i = 0; i < cols_len; i++) {
String col_name = metaData.getColumnName(i + 1); // 获取第 i列的字段名称  
                String col_Tpye = metaData.getColumnTypeName(i+1);//类型
                colNameList.add(metaData.getColumnName(i+1));
                System.err.println("列名:"+col_name+"类型:"+col_Tpye);
}
while (rs.next()) {
                System.err.println("资源管理系统数据===");
                Map<String, Object> map=new HashMap<String, Object>();
                for(int i=0;i<cols_len;i++){
                    String key=colNameList.get(i);
                    Object value=rs.getString(colNameList.get(i));
                    map.put(key, value);
                }  
                results.add(map);
            } } catch (SQLException e) {
e.printStackTrace();
System.err.println("资源管理系统获取数据出错=============");
} finally {
JdbcDataBaseUtil.closeConnection(getConn);//释放资源
}
return results;
}
}

MAP -JSON

  //net.sf.json.JSONObject 将Map转换为JSON方法
JSONObject json = JSONObject.fromObject(map); //org.json.JSONObject 将Map转换为JSON方法
JSONObject json =new JSONObject(map);
    String sendGet = HttpUtil.sendGet(requestUrl,"UTF-8");//sendGet多层的json字符串
System.err.println("sendGet:"+sendGet);
//Json 字符串转对象
JSONObject jsonObj = new JSONObject(sendGet);
//主要数据
try {
String dataStr = jsonObj.getJSONArray("userlog").toString();//获取其中一层的数据
String dataStrSub = dataStr.substring(1,dataStr.length()-1);//去掉中括号
System.out.println(dataStrSub);
Gson gson = new Gson();
map = gson.fromJson(dataStrSub, map.getClass()); //解析字符串-变map
} catch (Exception e) {
System.err.println("userlog为空,tostring报错");
}

JDBC ---获取数据字段 -- 转成map的更多相关文章

  1. sql server 获取数据字段(表的字段和类型信息)

    获取数据字段(表的字段和类型信息) SELECT 表名= then d.name else '' end, 表说明= then isnull(f.value,'') else '' end, 字段序号 ...

  2. jdbc获取数据具体过程

    下面是个最简单的使用jdbc取得数据的应用.在例子之后我将分成4步,分别是①取得连接,②创建PreparedStatement,③设置参数,④执行查询,来分步分析这个过程.除了设置参数那一步之外,其他 ...

  3. 【Spring Boot】使用JDBC 获取相关的数据

    使用JDBC 获取相关的数据 什么是JDBC Java Database Connectivity 是一种用于执行SQL语句的Java API,与数据库建立连接.发送 操作数据库的语句并处理结果. S ...

  4. 表id关联数据获取至页面,制作下拉框多选进行数据多项获取(字段处理)

     这周完成了一张表单,重点碰到以下问题: 1.freemaker获取年份的type值取year,类型直接为Long,传至后台和获取数据不需要转换: 2.freemaker获取日期type值为date, ...

  5. 使用 Qt 获取 UDP 数据并显示成图片(2)

    本文首发于 BriFuture 的 个人博客 在我的前一篇文章 使用 Qt 获取 UDP 数据并显示成图片 中,我讲了如何用 Python 模拟发送数据,如何在 Qt 中高效的接收 UDP 数据包并将 ...

  6. 使用 Qt 获取 UDP 数据并显示成图片

    一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...

  7. Java之通过接口获取数据并用JDBC存储到数据库中

    最近做数据同步功能,从接口获取数据然后存到数据库中以便后续对数据进行相关操作,下面就贴一下相关代码. import com.alibaba.fastjson.JSON; import com.alib ...

  8. resultset 对象获取行字段数据时报:java.sql.SQLException: Column 'id' not found.

    resultset 对象获取行字段数据时报:java.sql.SQLException: Column 'id' not found. 代码: String sql="SELECT d.co ...

  9. sql 根据指定条件获取一个字段批量获取数据插入另外一张表字段中+MD5加密

    /****** Object: StoredProcedure [dbo].[getSplitValue] Script Date: 03/13/2014 13:58:12 ******/ SET A ...

随机推荐

  1. react的dva框架初试

    使用背景:迫不得已!!(自己入职是以vue技术入职的,说是马上vue项目就来了,让我负责这个项目的前端.但是入职后就让我下了现在这个项目看下,然后就顺理成章的帮忙进行开发了,其实自己一直想要做reac ...

  2. Unicode编码问题 如:\u529e\u7406\u9996\u6c7d\u52a0\u6cb9

    python 遇到\u529e\u7406\u9996\u6c7d\u52a0\u6cb9 解决方法: a = "\u529e\u7406\u9996\u6c7d\u52a0" b ...

  3. 微信小程序实现图片裁剪上传(wepy)

    参考https://github.com/we-plugin/we-cropper,在wepy中实现,参考的具体例子是we-cropper/example/cutInside/ 项目上传图片时2:3的 ...

  4. winform中DataGridView实现分页功能

    WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载)   转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...

  5. Practical Node.js (2018版) 第8章:Building Node.js REST API Servers

    Building Node.js REST API Servers with Express.js and Hapi Modern-day web developers use an architec ...

  6. WordCount基本功能

    WordCount基本功能 码云地址:https://gitee.com/Joker_zou/WordCount.git 一.项目需求 WordCount的需求可以概括为:对程序设计语言源文件统计字符 ...

  7. 『Numpy』内存分析_高级切片和内存数据解析

    在计算机中,没有任何数据类型是固定的,完全取决于如何看待这片数据的内存区域. 在numpy.ndarray.view中,提供对内存区域不同的切割方式,来完成数据类型的转换,而无须要对数据进行额外的co ...

  8. grpc(一)grpc-java之helloworld

    1.参考资料 (1)grpc-java官网QuickStart: https://grpc.io/docs/quickstart/java.html (2)grpc-java的github: http ...

  9. python安装pyMysql

    python2和python3是不兼容的,在python2中,链接数据库使用的是mysqldb,但在python3中是是pyMysql. 1.首先dos进入python安装目录,找到并进入Script ...

  10. 版本管理工具Git(3)VS2013下如何使用git

    Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用git VS下创建项目 vs中新建项目MyGitTest201 ...