主类:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;public class Test {private static Connection connection;private static Statement statement;private Table currentTable;private static int count=0;public static void main(String[] args){Test test = new Test();test.getConn();for (int i = 2; i<= 288; i++){String index;if (i<10) {index = "00" + i;}else if (i<100){index = "0" + i;} else {index = "" + i;}String tableName = "20170301_" + index;System.out.println(tableName + " is running...");test.createTable(tableName);test.readFile(tableName);System.out.println("sum: " + test.countTable(tableName));}try {connection.close();} catch (SQLException e) {e.printStackTrace();}}private void getConn() {String driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/taxi";String username = "?????";String password = "??????";Connection conn = null;try {Class.forName(driver); //classLoader,加载对应驱动connection = DriverManager.getConnection(url, username, password);statement = connection.createStatement();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}private void createTable(String tableName){currentTable = new Table(tableName);currentTable.addItem("id", "int UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT");currentTable.addItem("date", "date");currentTable.addItem("time", "time");currentTable.addItem("placeholder", "varchar(5)");currentTable.addItem("taxi_id", "varchar(50)");currentTable.addItem("longitude", "decimal");currentTable.addItem("latitude", "decimal");currentTable.addItem("speed", "decimal");currentTable.addItem("direction", "int");currentTable.addItem("state", "tinyint");currentTable.addItem("validity", "tinyint");String createTableSql = currentTable.makeCreateTableStatement();try {boolean rs = statement.execute(createTableSql);} catch (SQLException e) {e.printStackTrace();}}private void insert(String line){String insertSql = currentTable.makeInsertStatement(line);
//        System.out.println(insertSql);try {statement.executeUpdate(insertSql);count++;} catch (SQLException e) {e.printStackTrace();System.out.println(count);System.exit(1);}}private int countTable(String tableName){int res = 0;try {ResultSet resultSet = statement.executeQuery("select count(*) from "+ tableName + ";");if(resultSet.next()) {res=resultSet.getInt(1);}} catch (SQLException e) {e.printStackTrace();}return res;}private void readFile(String tableName){try {String rootPath = "E:\\CODA数据\\3 出租 -- 出租车轨迹样本\\01\\";FileReader fileReader = new FileReader(rootPath + tableName + ".txt");BufferedReader br = new BufferedReader(fileReader); // 建立一个对象,它把文件内容转成计算机能读懂的语言String line;//网友推荐更加简洁的写法ArrayList<String> list = new ArrayList();int count = 0;int per = 500;while ((line = br.readLine()) != null) {// 一次读入一行数据list.add("(" + addQuote(line) + ")");count++;if (count == per){insertArray(list);count=0;}}if (!list.isEmpty()){insertArray(list);}} catch (IOException e) {e.printStackTrace();}}private String addQuote(String line){StringBuilder sb = new StringBuilder(line);sb.deleteCharAt(18).deleteCharAt(18);sb.insert(16, "'").insert(18,"'").insert(20,"'").insert(31, "'");return sb.toString();}private void insertArray(ArrayList<String> list){String sql = "";for (String item : list){sql = sql + item + ",";}
//        System.out.println(sql);insert(sql.substring(0, sql.length()-1));list.clear();}}

Table类

import java.util.LinkedHashMap;
import java.util.Map;public class Table {private LinkedHashMap<String, String> items = new LinkedHashMap<String, String>();private String tableName;Table(String name){this.tableName = name;}public String getTableName() {return tableName;}public void setTableName(String tableName) {this.tableName = tableName;}public void addItem(String name, String restrain){this.items.put(name, restrain);}public String makeCreateTableStatement(){String sql="CREATE TABLE IF NOT EXISTS " + this.tableName + " (";for (Map.Entry<String, String> entry: items.entrySet()){sql += entry.getKey() + " " + entry.getValue() + ",";}sql = sql.substring(0, sql.length()-1);return sql + ");";}public String makeInsertStatement(String line){String sql = "Insert Into " + this.tableName + "(";for (Map.Entry<String, String> entry: items.entrySet()){if (entry.getKey().equals("id")) continue;sql += entry.getKey() + ",";}sql = sql.substring(0, sql.length()-1) + ") Values " + line ;return sql + ";";}
}

CODA数据集 -- 出租车存MySQL源码相关推荐

  1. 基于Java毕业设计仓库进销存管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计仓库进销存管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计仓库进销存管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 ...

  2. java计算机毕业设计服装批发进销存系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计服装批发进销存系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计服装批发进销存系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...

  3. 计算机毕业设计Java网上零食进销存(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java网上零食进销存(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java网上零食进销存(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 开 ...

  4. 怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!

    写在前面 最近,在开发一个分库分表中间件,由于功能需求,需要分析MySQL协议,发现网上对于MySQL协议分析的文章大部分都过时了,原因是分析的MySQL版本太低了.怎么办呢?于是乎,我便硬着头皮开始 ...

  5. mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...

    点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...

  6. 高端进销存管理系统源码+微信小程序,

    Java进销存系统源码带微信小程序 开发语言:JAVA 数据库:MySQL 开发工具:Eclipse 源码类型:全开源,免费分享 进销存系统,支持微信小程序端.电脑端.支持商品扫码.订单商品扫码等. ...

  7. PHP进销存erp源码库存管理系统

    PHP进销存erp源码库存管理系统 (2次开发另外收费) 本系统开发 PHP + MySQL 采用CI2.x框架 本系统运行环境 php5.3+mysql5.5 支持IIS.apache 不支持ngi ...

  8. mysql源码如何解析where字句_用mysql源码进行SQL解析

    用mysql源码进行SQL解析 Mysql是通过yacc进行SQL语句解析的,这里介绍一下如何使用mysql的源码进行SQL语句解析.由于Mysql的源代码注释比较少,而且缺少资料,所有些地方研究不够 ...

  9. 进销存管理系统源码|ERP源码开发

    进销存管理系统源码:e.csymzs.top 进销存管理系统由应用程序和工具组成,可帮助您的业务的所有领域更有效地相互沟通.它们将企业的方方面面集成到一个综合信息系统中.例如,计划和调度部门的员工可以 ...

最新文章

  1. JavaScript学习笔记(2)——JavaScript和DOM的关系
  2. mysql 一条sql update多条记录
  3. mysql安全无密码登录_技术分享 | 安全地无密码登录 MySQL
  4. 经验分享:如何做好产品可行性分析?
  5. nginx代理图片服务器
  6. 一文了解KingSwap
  7. 720p、1080i、1080p,三种格式(片源),谁更清晰?
  8. chrome更新后,再次使用selenium打开chrome却发现闪退了?全网最详细教程,肯定能帮到你!
  9. Word Embedding与Word2Vec
  10. 代理模式详解--潘金莲版
  11. 【pycharm】英文输入法变成全角字符无法输入
  12. 618电商平台鏖战,天猫618才是绝对主场
  13. 你可能不知道的JavaScript 遍历DOM的几种方法
  14. 〖Python 数据库开发实战 - MySQL篇㉑〗- 数据表的外连接
  15. Python 绘制隐函数图像
  16. 【Mendeley】参考文献中et al 的格式修改
  17. WinSnap中文版v5.3.6-屏幕截图工具
  18. 基于Matlab的天线阵列综合 微波与电磁场 计算成像 波束赋形 相控阵 阵列天线设计
  19. 数据结构 顺序表La和Lb合并
  20. HFSS学习笔记—17.超宽带天线(3.3~10.6GHz)

热门文章

  1. android 闹钟不响,为什么我写的Android闹钟到时间时却不会响
  2. 金蟾论金:4.12黄金涨势不足重启跌势-晚间走势操作建议
  3. 生鲜电商O2O 可以怎么做?
  4. 同一个局域网之内,如何远程控制对方的电脑而且不用对方同意
  5. OPengl实现小球围绕大球旋转的效果
  6. 维克森林大学计算机科学专业好不好,维克森林大学计算机专业怎么样?
  7. 聚焦行为识别和异常检测!ECCV 2022 精细视频理解挑战赛(DeeperAction)开启!
  8. 复选框弹出确认框,点取消,仍会打钩或者把钩消掉
  9. java JDBC连接MySQL数据库调用存储过程进行查询
  10. 路帮网的加油站开放接口