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 ...
随机推荐
- aliplayer 视频播放报错
问题总结: 1.引用 阿里库时href和src 文件路径不加http <link rel="stylesheet" href="//g.alicdn.com/de/ ...
- java 静态变量初始化
java 静态变量在编译阶段就已经明确位置, 所以静态变量的声明与初始化在编码顺序上可以颠倒.也就是说可以先编写初始化的代码,再编写声明代码.如: public class Test { // 静态变 ...
- Learning-Python【2】:简单介绍Python基本数据类型及程序交互
人类可以很容易的分清数字与字符的区别,但是计算机并不能,计算机虽然很强大,但在某些方面很笨,你得明确的告诉它,“1”是数字,“我”是文字.否则计算机是分不清的.因此,在每个编程语言中都会有数据类型的概 ...
- vue 项目 使用sass
1,使用save会在package.json中自动添加. npm install node-sass --save-dev npm install sass-loader --save-dev 注: ...
- 雷林鹏分享:jQuery EasyUI 数据网格 - 启用行内编辑
jQuery EasyUI 数据网格 - 启用行内编辑 可编辑的功能是最近添加到数据网格(datagrid)的.它可以使用户添加一个新行到数据网格(datagrid).用户也可以更新一个或多个行. 本 ...
- From CSV to SQLite3 by python 导入csv到sqlite
'''初次使用SQLite,尝试把之前一个csv文件导进去,看了网上各种教程,大多是在SQLite shell模式下使用的,比较麻烦, 这里用了panda,就方便多了,仅作示例供参考. 第一篇开博,想 ...
- laravel框架实现数据的删除和修改
//模型层的调用 <?phpnamespace App;use Illuminate\Support\Facades\DB;use Illuminate\Database\Eloquent\Mo ...
- String 的方法总结
1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) var str = "ABC"; ...
- css预处理器--sass学习($变量名)
sass有两种形式1.scss 2.sass 一:代码的基本用法 1.变量 如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中. $side : left; .rounded { border- ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)
梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...