dtcms XShell java开发环境变量 ssl d3 text oauth request Amaze UI 系统后台模板 bootstrap模板 十大erp系统 jquery each jq第一个子元素 jquery第一个子元素 jquery延时 jquery获取dom对象 grep不是内部命令 查看oracle连接数 pip环境变量配置 git下载项目 升级python版本 kubernetes视频教程 mysql删除表 python开发教程 python算法 python获取数据类型 python类与对象 python下载安装教程 如何配置python环境 java数组反转 java日期 java编程实例 java泛型 java字符串长度 java字符串查找 java创建文件夹 pascal教程 ie模拟器 allowoverride
当前位置: 首页 > 学习教程  > 编程语言

纯JDBC查询数据库并转换为对应实体类的List集合

2020/12/5 9:56:01 文章标签:

1、查询及转换方式如下 private static Log log LogFactory.getLog(Dirlog.class); String dirver JdbcConfig.getDriver();//从配置文件读取数据库连接信息String url JdbcConfig.getConnectUrl(num);String username JdbcConfig.getUserName(num);String pas…

1、查询及转换方式如下 

            private static Log log = LogFactory.getLog(Dirlog.class);            
            String dirver = JdbcConfig.getDriver();
            //从配置文件读取数据库连接信息
            String url = JdbcConfig.getConnectUrl(num);
            String username = JdbcConfig.getUserName(num);
            String password = JdbcConfig.getPassword(num);
            String table = JdbcConfig.getTable(num);
            Connection connection = null;
            PreparedStatement statement = null;
            ResultSet resultSet = null;
            try {
                Class.forName(dirver);
                connection = DriverManager.getConnection(url, username, password);
                if (connection != null) {
                    //获取前一天的开始时间和结束时间
                    String startTime = DateUtil.getDate(1) + " 00:00:00";
                    String endTime = DateUtil.getDate(1) + " 23:59:59";
                    String sql = "SELECT * FROM "+table+" WHERE create_time BETWEEN '" + startTime +"' AND '" + endTime+"'";
                    statement = connection.prepareStatement(sql);
                    resultSet = statement.executeQuery();
                    ResultSetMetaData metaData = resultSet.getMetaData();
                    int columnNum = metaData.getColumnCount();
                    List<Map<String, Object>> list = new ArrayList<>();
                    while (resultSet.next()) {
                        Map<String, Object> rowData = new HashMap<>();
                        for (int i = 1; i <= columnNum; i++) {
                            rowData.put(metaData.getColumnName(i), resultSet.getObject(i));
                        }
                        list.add(rowData);
                    }
                    //将查询到的表数据转换为中间表数据集合
                    JSONArray jsonArray = JSONArray.fromObject(list);
                    List<EsLogObj> esLogs = JSONArray.toList(jsonArray, EsLogObj.class);
                    //将中间表集合转换为标准的Log数据集合
                    List<Log> loglist = new ArrayList<>();
                    for (EsLogObj esLog : esLogs) {
                        loglist.add(esLog.convertToLog());
                    }
                    log.info("同步:"+url+"日志数量:"+loglist.size());
                }
            } catch (Exception e) {
                log.error("查询日志失败,连接地址:"+url+";失败原因:"+e.getMessage());
                e.printStackTrace();
            }finally {
                try {
                    if (connection != null){
                        connection.close();
                    }
                    if (resultSet != null){
                        resultSet.close();
                    }
                    if (statement != null){
                        statement.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }

2.DateUtil相关方法

/**
	 * 获取指定数量的天前的系统日期串,格式为"yyyy-MM-dd"
	 * @param days 天数
	 * @return
	 */
	public static String getDate(int days) {
		GregorianCalendar calTmp = new GregorianCalendar();
		calTmp.add(GregorianCalendar.DATE, -1 * days);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(calTmp.getTime());
	}

 

 


本文链接: http://www.dtmao.cc/news_show_450118.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?