package test;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date; public class JDBCTest { public static void main(String[] args) { // 驱动程序名
String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名
String url = "jdbc:mysql://172.33.0.190:3306/report"; // MySQL配置时的用户名
String user = "root"; // MySQL配置时的密码
String password = "123456"; try {
Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!"); Statement statement = conn.createStatement(); // String showTables = "show tables";
//
// ResultSet rs = statement.executeQuery(showTables);
//
// System.out.println("-----------------");
ResultSet rs=null; List tableLists = new ArrayList();
//tableLists.add("rpt_ci_cinema_summary_dt");
//tableLists.add("bm_ykfp_cinema_film_hall_ticket_dt");
//tableLists.add("rpt_fm_cinema_film_ticket_dt");
//tableLists.add("rpt_ci_cinema_hall_ticket_dt");
//tableLists.add("rpt_ci_cinema_payment_ticket_dt");
//tableLists.add("rpt_shop_cinema_goods_trade_dt");
//tableLists.add("rpt_shop_cinema_goods_chanl_trade_dt"); //tableLists.add("rpt_shop_cinema_goods_item_trade_dt");
//tableLists.add("rpt_shop_cinema_goods_combo_item_trade_dt");
//tableLists.add("rpt_fm_cinema_film_summary_dt");
tableLists.add("rpt_memb_cinema_membcard_addmoney_detail");
System.out.println(tableLists); /*while (rs.next()) {
String name = rs.getString(1);
if (name.startsWith("rpt") && name.endsWith("dt") && name.indexOf("_tr_") == -1)
tableLists.add(name);
}*/ // list2.stream().forEach(key -> System.out.println(key));
tableLists.stream().forEach(System.out::println); System.out.println("-----------------"); List dateLists = new ArrayList(); Date d1 = new SimpleDateFormat("yyyyMMdd").parse("20150101");//定义起始日期
Date d2 = new SimpleDateFormat("yyyyMMdd").parse("20160801");//定义结束日期
Calendar dd = Calendar.getInstance();//定义日期实例
dd.setTime(d1);//设置日期起始时间
while(dd.getTime().before(d2)){//判断是否到结束日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
java.lang.String str = sdf.format(dd.getTime());
System.out.println(str);//输出日期结果
dd.add(Calendar.DATE, 1);//进行当前日期加1
dateLists.add(str);
}
/*for (int i = 20160101; i < 20160132; i++) {
dateLists.add(String.valueOf(i)); }*/
System.out.println("-----------------" + dateLists.size());
dateLists.stream().forEach(System.out::println); for (int k = 0; k <dateLists.size(); k++) {
String dateStr=(String)dateLists.get(k);
System.out.println("----------" + dateStr); for (int j = 0; j < tableLists.size(); j++) { String tableName = (String) tableLists.get(j); String descTable = "desc " + tableName; rs = statement.executeQuery(descTable); List columnNameList = new ArrayList(); while (rs.next()) {
String name = rs.getString(1);
if (name != null)
columnNameList.add(name);
}
System.out.println("-----------------"); // String sqlSelect = "select * from
// "+"rpt_ci_cinema_chanl_new_trade_dt";
// String sqlInsert = "insert into student (Name,Sex,Age)
// values(?,?,?)"; String insertTable = "replace into" + " " + tableName + " " + "( ";
int columnNameSize = columnNameList.size();
for (int i = 0; i < columnNameSize; i++) {
insertTable += columnNameList.get(i);
if (i != columnNameSize - 1)
insertTable += ",";
}
insertTable += " )"; // ******Need change the date "20160502" to dateStr
insertTable += " select '"+ dateStr +"' AS BIZDATE,"; for (int i = 1; i < columnNameSize; i++) {
insertTable += columnNameList.get(i);
if (i != columnNameSize - 1)
insertTable += ",";
} insertTable += " from " + tableName + " where biz_date='20160601' "+";"; System.out.println("" + insertTable); statement.execute(insertTable); System.out.println("--####Finished execute insert into table : " + tableName);
} } rs.close();
conn.close(); } catch (ClassNotFoundException e) { System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally{
System.out.println("********************All Completed*****************");
}
}
}

  

mock数据。根据表中一天的数据模拟其他日期的数据的更多相关文章

  1. 【Excle】如何隐藏数据透视表中的错误值

    如下:数据透视表出现错误 怎么解决呢 步骤 方法① 单击数据透视表任意单元格→数据透视表工具→分析→选项→勾选"对于错误值显示"→确定 方法② 右键→数据透视表选项(同样可以修改)

  2. 使用SqlBulkCopy批量插入多条数据进入表中

    由于工作中项目需求结算一次生成一批相同批次号的数据插入一个表中,然后再通过另一页面展示出来,所以需要用到一次性插入一批数据,所以就采用了SqlBulkCopy插入一批数据 1 public stati ...

  3. 在已有数据的表中添加id字段并且自增

    各位大牛,小弟在开发过程中,遇到了这样一个问题,由于新功能的增加需要使原有的一张表的结构作出调整,需要添加一个id主键字段,但是因为表里有很多数据了,所以,怎样才能添加这个字段,并且使原有的数据也能够 ...

  4. 大数据量表中,增加一个NOT NULL的新列

      这次,发布清洗列表功能,需要对数据库进行升级.MailingList表加个IfCleaning字段,所有的t_User*表加个IfCleaned字段.   脚本如下 对所有的t_User表执行 a ...

  5. 【Excle数据透视表】如何得到数据透视表中某个汇总行的明细数据

    例如: 现在想得到"北京 汇总"的明细数据,该怎么处理呢? 步骤 右键数据透视表任意单元格→数据透视表选项→启用显示明细数据→确定→单击"北京 汇总"行最后一个 ...

  6. 十几万条数据的表中,基于帝国cms 。自己亲身体验三种批量更新数据的方法,每一种的速度是什么样的

    需求是 上传Excel 读取里面的数据.根据Excel中某一个字段,与数据表中的一个字段的唯一性.然后把 Excel表中数据和数据库表中数据一次更改.本次测试一次更新31条数据. 本次测试基于帝国cm ...

  7. 【Excle数据透视表】如何在数据透视表中使用合并单元格标志

    先有数据透视表如下: 现在看着这个格式不舒服,我们希望调整成如下这种样式 步骤 单击数据透视表任意单元格→右键→数据透视表选项→布局和格式→合并且居中排列带标签的单元格 注意:如果数据透视表报表布局不 ...

  8. Oracle中如何添加和修改包含日期的数据

    平时我们在sql sverver中我们添加包含日期的数据时,是直接将日期变成日期格式字符串,但是在Oracle中就不行了, 那么,如何添加包含日期数据 如:在oracle执行insert语句 /** ...

  9. (转载)IQ 16.0 SP02起支持从压缩文件直接装载数据到表中

    参考文档: http://m.blog.chinaunix.net/uid-16765068-id-4405877.htmlhttp://www.cnblogs.com/lichmama/p/4103 ...

随机推荐

  1. sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) Cannot add a NOT NULL column with default value NULL [SQL: u'ALTER TABLE address_scopes ADD COLUMN ip_version INTEGER NOT NULL']

    root@hett-virtual-machine:~# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neu ...

  2. Linux系统里让vim支持markdown格式的语法高亮

    Markdown是深受程序员喜爱的一个文件格式. 然而Linux里默认的vim设置,并不支持markdown格式的语法高亮显示. 下面就来介绍如何设置使得markdown格式的文件在vim里也能享有语 ...

  3. 微信程序开发系列教程(二)使用JavaScript给微信用户发送消息

    我之前的文章 微信程序开发系列教程(一)开发环境搭建 介绍了微信开发环境的搭建,这篇文章我们就来一步步开发一些具体的功能. 功能需求:当有微信用户关注了您的公众号之后,您用JavaScript发送一个 ...

  4. 使用Cordova将您的前端JavaScript应用打包成手机原生应用

    假设我用JavaScript和HTML开发了一个前端应用,我想把该应用打包成能直接在手机上安装和运行(不通过浏览器)的原生应用,例如像下面这样.对应用的用户来说,他们得到的用户体验和真正的用Andro ...

  5. Scalatra

    SBT和giter8 在你开始着手之前,你需要安装两个工具(我假设你已经安装了JDK1.6+).我将给你提供简缩的安装指令,详细版的安装指令可通过 下面的scalatra页面找到( http://ww ...

  6. mysql 存在更新,不存在插入

    String sql = "insert into wb_result " + "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ...

  7. MINST手写数字识别(二)—— 卷积神经网络(CNN)

    今天我们的主角是keras,其简洁性和易用性简直出乎David 9我的预期.大家都知道keras是在TensorFlow上又包装了一层,向简洁易用的深度学习又迈出了坚实的一步. 所以,今天就来带大家写 ...

  8. 前端性能优化:细说JavaScript的加载与执行

    本文主要是从性能优化的角度来探讨JavaScript在加载与执行过程中的优化思路与实践方法,既是细说,文中在涉及原理性的地方,不免会多说几句,还望各位读者保持耐心,仔细理解,请相信,您的耐心付出一定会 ...

  9. js中声明函数的三种方式

    己亥年  庚午月 癸巳日  宜入宅 忌婚嫁 函数声明方式 声明 : function first(){}: 调用:first() 函数表达式声明方式   声明: var second=function ...

  10. 洛谷 P1663 山

    https://www.luogu.org/problemnew/show/P1663 可能在这里看会好一点:[题解]