JDBC ---获取数据字段 -- 转成map
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的更多相关文章
- sql server 获取数据字段(表的字段和类型信息)
		
获取数据字段(表的字段和类型信息) SELECT 表名= then d.name else '' end, 表说明= then isnull(f.value,'') else '' end, 字段序号 ...
 - jdbc获取数据具体过程
		
下面是个最简单的使用jdbc取得数据的应用.在例子之后我将分成4步,分别是①取得连接,②创建PreparedStatement,③设置参数,④执行查询,来分步分析这个过程.除了设置参数那一步之外,其他 ...
 - 【Spring Boot】使用JDBC 获取相关的数据
		
使用JDBC 获取相关的数据 什么是JDBC Java Database Connectivity 是一种用于执行SQL语句的Java API,与数据库建立连接.发送 操作数据库的语句并处理结果. S ...
 - 表id关联数据获取至页面,制作下拉框多选进行数据多项获取(字段处理)
		
这周完成了一张表单,重点碰到以下问题: 1.freemaker获取年份的type值取year,类型直接为Long,传至后台和获取数据不需要转换: 2.freemaker获取日期type值为date, ...
 - 使用 Qt 获取 UDP 数据并显示成图片(2)
		
本文首发于 BriFuture 的 个人博客 在我的前一篇文章 使用 Qt 获取 UDP 数据并显示成图片 中,我讲了如何用 Python 模拟发送数据,如何在 Qt 中高效的接收 UDP 数据包并将 ...
 - 使用 Qt 获取 UDP 数据并显示成图片
		
一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...
 - Java之通过接口获取数据并用JDBC存储到数据库中
		
最近做数据同步功能,从接口获取数据然后存到数据库中以便后续对数据进行相关操作,下面就贴一下相关代码. import com.alibaba.fastjson.JSON; import com.alib ...
 - resultset 对象获取行字段数据时报:java.sql.SQLException: Column 'id' not found.
		
resultset 对象获取行字段数据时报:java.sql.SQLException: Column 'id' not found. 代码: String sql="SELECT d.co ...
 - sql 根据指定条件获取一个字段批量获取数据插入另外一张表字段中+MD5加密
		
/****** Object: StoredProcedure [dbo].[getSplitValue] Script Date: 03/13/2014 13:58:12 ******/ SET A ...
 
随机推荐
- luogu2046[NOI2010]海拔 对偶图优化
			
luogu2046[NOI2010]海拔 对偶图优化 链接 https://www.luogu.org/problemnew/show/P2046 思路 海拔一定是0或者1,而且会有一条01交错的分界 ...
 - centos6.5下安装Redis
			
已有redis-3.2.1.tar.gz文件 拖到centos系统的桌面 现在在桌面目录下 tar -zxv -f redis-3.2.1.tar.gz以解压压缩包 cd redis-3.2.1以切换 ...
 - 聚合函数与F/Q表达式
			
聚合函数 取名: field + __ + 聚合函数名字 ,如:price__avg:可传关键字参数修改名字:avg=Avg("price"): aggregate:不会返回一个 ...
 - 01.什么是Vue.js
			
VUE.JS 什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的, ...
 - lambda Helper
			
/// <summary> /// 操作表达式共通类,条件并且,或者操作等 /// </summary> public static class PredicateBuilde ...
 - less点滴
			
1.简单的嵌套: less中显示: css中显示 2.作为值的变量: less中: @green: #801f77;@baise:white; header,footer{ background: @ ...
 - PAT 1073 Scientific Notation
			
1073 Scientific Notation (20 分) Scientific notation is the way that scientists easily handle very ...
 - react 表单获取多个input
			
react 表单this.handleChange(key,e){ [key]:e.target.value} submit=()=>{ const {userName,age,status} ...
 - HTML DOM 属性
			
innerHTML 属性 获取元素内容的最简单方法是使用 innerHTML 属性. innerHTML 属性对于获取或替换 HTML 元素的内容很有用. 实例 下面的代码获取 id="in ...
 - Python中的装饰器的简单介绍02
			
这篇博文转载自伯乐在线的12步轻松搞定python装饰器,重构成python3. 1. 函数 在python中,函数通过def关键字.函数名和可选的参数列表定义.通过return关键字返回值.我们举例 ...