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报错");
}