使用jdk进行数据迁移(sqlite迁移mysql)

直接粘贴代码

注意:rewriteBatchedStatements=true(加快连接速度)

package com.wbg;import org.omg.Messaging.SYNC_WITH_TRANSPORT;import java.sql.*;
import java.util.ArrayList;
import java.util.List;public class DBSQLite {//驱动static String DBDRIVERSQLITE="org.sqlite.JDBC";//文件绝对地址static String DBURLSQLITE="B:\\lagou.db";static Connection CONNSQLITE;static PreparedStatement PSTATSQLITE;//驱动static String DBDRIVERMYSQL="com.mysql.jdbc.Driver";//数据库static String DBURLMYSQL="jdbc:mysql://localhost:3306/ii?rewriteBatchedStatements=true";//comoany是数据库static Connection CONNMYSQL;static PreparedStatement PSTATMYSQL;static {try {Class.forName(DBDRIVERSQLITE);CONNSQLITE= DriverManager.getConnection("jdbc:sqlite:"+DBURLSQLITE);Class.forName(DBDRIVERMYSQL);CONNMYSQL=DriverManager.getConnection(DBURLMYSQL,"root","123456");} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}/*** 获取数据库中所有表*/public static List<String> getTable(){System.out.println("开始获取数据表");//数据库DatabaseMetaData md=null;List<String> list=new ArrayList<>();try {//获取数据库md = CONNSQLITE.getMetaData();} catch (SQLException e) {e.printStackTrace();}try {//进行查询表ResultSet rs=md.getTables(null,null,null,null);if (rs!= null) {list = new ArrayList<String>();}//往list添加查询到的表while (rs.next()){list.add(rs.getString("TABLE_NAME"));}} catch (SQLException e) {e.printStackTrace();}System.out.println("查询数据表成功");return list;}/*** 向mysql创建数据表*/public static void createTable(){ResultSetMetaData rsmd = null;//获取所有数据库List<String> list=DBSQLite.getTable();for (int i = 0; i < list.size(); i++) {long srop=System.currentTimeMillis();System.out.println("开始创建第" + (i + 1 )+ "数据表...");//查询表String sql = "select * from " + list.get(i);int size = 0;try {PSTATSQLITE = CONNSQLITE.prepareStatement(sql);//获取数据表rsmd = PSTATSQLITE.getMetaData();//创建语句String create = "create table " + list.get(i) + "(";//fh目的最后一个没有逗号String fh = "";//循环表中所有字段size = rsmd.getColumnCount();for (int j = 0; j < size; j++) {//字段名 类型create += fh + rsmd.getColumnName(j + 1) + "  " + rsmd.getColumnTypeName(j + 1);//判断长度是否不为0  比如varchar(10)  integerif (rsmd.getPrecision(j + 1) != 0) {//不为0就给个长度create += "(" + rsmd.getPrecision(j + 1) + ")";}fh = ",";}create += ");";execute(create);} catch (SQLException e) {e.printStackTrace();}System.out.println("开始向(" + list.get(i) + ")数据表添加数据...");if (insertTable( list.get(i), size)){System.out.println("第" + (i + 1 ) + "个数据表数据录入完毕");}else {System.out.println("第" + (i + 1 ) + "个数据表数据录入失败");}}}/*** 向mysql数据表录入数据* sql  查询语句  size 字段长度*/public static boolean insertTable(String sql,int size){ResultSet rs=executeQuerySQLITE("select * from "+sql);try {String fh="";String sqladd="insert into "+sql+" values(";for (int i = 0; i < size; i++) {sqladd+=(fh+"?");fh=",";}sqladd+=")";//关闭自动提交CONNMYSQL.setAutoCommit(false);PSTATMYSQL=CONNMYSQL.prepareStatement(sqladd);while (rs.next()){for (int i = 0; i < size; i++) {PSTATMYSQL.setObject(i+1,rs.getObject(i+1));}PSTATMYSQL.addBatch();}PSTATMYSQL.executeBatch();//提交
            CONNMYSQL.commit();//打开自动提交CONNMYSQL.setAutoCommit(true);} catch (SQLException e) {e.printStackTrace();}return true;}public static ResultSet executeQuerySQLITE(String  sql){try {PSTATSQLITE=CONNSQLITE.prepareStatement(sql);return PSTATSQLITE.executeQuery();} catch (SQLException e) {e.printStackTrace();}return null;}public static void execute(String sql){try {PSTATMYSQL=CONNMYSQL.prepareStatement(sql);PSTATMYSQL.execute();} catch (SQLException e) {System.out.println("创建数据库失败");}}public static int executeUpdate(String sql ,Object[]in){try {PSTATMYSQL =CONNMYSQL.prepareStatement(sql);for (int i = 0; i <in.length; i++){PSTATMYSQL.setObject(i+1,in[i]);}return  PSTATMYSQL.executeUpdate();} catch (SQLException e) {e.printStackTrace();}return 0;}public static void main(String[] args) {long start= System.currentTimeMillis();System.out.println("开始迁移数据");createTable();System.out.println("迁移完毕,耗时:"+(System.currentTimeMillis()-start)/1000);}
}

posted @ 2018-09-11 14:07 韦邦杠 阅读(...) 评论(...) 编辑 收藏

使用jdk进行数据迁移(sqlite迁移mysql)相关推荐

  1. mysql 数据迁移java_使用jdk进行数据迁移(sqlite迁移mysql)

    packagecom.wbg;importorg.omg.Messaging.SYNC_WITH_TRANSPORT;import java.sql.*;importjava.util.ArrayLi ...

  2. 从sqlite 迁移 mysql_将 Ghost 从 SQLite3 数据库迁移到 MySQL 数据库

    下面我们就来说说如何从 SQLite 迁移到 MySQL . 准备 首先你要已经安装好 MySQL 数据库.如果你用的是 Ubuntu 系统,请参考这篇文章.其他系统请参考各自对应的文档. 导出当前数 ...

  3. python做mysql数据迁移_Python中MySQL数据迁移到MongoDB脚本的方法

    MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库 ...

  4. mysql php 迁移_MySQL数据复制、迁移、转换

    本文总结各种场景下的mysql数据复制.迁移.转换.1.导入.导出利用mysqldump命令将数据文件导出成一个文本文件,这在不同场景下 本文总结各种场景下的mysql数据复制.迁移.转换. 1.导入 ...

  5. mysql 数据迁移_CentOS7迁移Mysql数据库文件

    1.查看Mysql安装路径 cat /etc/my.cnf 2.查看数据盘路径 df 3.数据盘下创建mysql数据目录,设置目录磁盘写入权限 cd /mnt1/xfrb_database/mkdir ...

  6. 【大数据新手上路】“零基础”系列课程--MySQL 数据整库迁移到 MaxCompute

    随着公司业务的增多,云数据库 RDS 下的 MySQL 数据库的表越来越多,想要把它全部迁移到 MaxCompute 中进行计算分析,但又愁要配置太多次同步任务.如何能将大量的数据表一次性上传到 Ma ...

  7. 从云数据迁移服务看MySQL大表抽取模式

    摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...

  8. 数据传输服务 DTS > 数据迁移 > 从自建数据库迁移至阿里云 > 源库为MySQL > 从自建MySQL迁移至RDS MySQL

    从自建MySQL迁移至RDS MySQL 更新时间:2020-08-20 10:49:52 编辑我的收藏 本页目录 前提条件 注意事项 费用说明 迁移类型说明 增量数据迁移支持同步的SQL操作 数据库 ...

  9. mysql大表数据抽取_从云数据迁移服务看MySQL大表抽取模式

    摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...

  10. mysql迁移后数据对比_Oracle/云MySQL/MsSQL“大迁移”真相及最优方案

    原标题:Oracle/云MySQL/MsSQL"大迁移"真相及最优方案 最近一段时间碰到一些数据迁移的项目,如:Oracle迁移到MySQL,MsSQL迁移到MySQL,云MySQ ...

最新文章

  1. 大开眼界!AI在医疗和汽车行业的11个有趣应用
  2. linux系统生成的新文件是什么编码的,Linux系统的默认编码设置
  3. 消息队列中点对点与发布订阅区别
  4. SAP Spartacus cms.service.ts getComponentData
  5. C#中使用jieba.NET、WordCloudSharp制作词云图
  6. linux md5加密文件,Linux下对字符串进行MD5加密
  7. 数据可视化【一】JavaScript学习
  8. 精读《怎么用 React Hooks 造轮子》
  9. 野生前端的数据结构练习(9)冒泡排序,选择排序,插入排序
  10. Shiro 支持三种方式的授权
  11. 学python有前途吗-2019年转行学Python有还前途吗?如何学习Python?
  12. java swing 飞机大战游戏 github 免费 开源 公开 源码
  13. Linux下如何使用qt和anjuta来单步调试caffe的代码
  14. 三步骤详解张正友标定法
  15. Java曲线之削峰填谷,科学网—Lorenz曲线之削峰填谷 - 李宁的博文
  16. Java抽象画--秒变绘图大师
  17. 为什么需要序列化总结
  18. ly-tab第三方组件使用记录
  19. C++数组去重与排序
  20. 冷补丁和热补丁的区别

热门文章

  1. Darknet网络模型结构可视化
  2. python实现将将输入的可约分数化简为不可约分数
  3. 大公司笔试面试有哪些经典算法题目?
  4. mysql 程序编码_MySql编码
  5. java用链表 编写记事本_(超详细) 动手编写 — 链表 (Java实现)
  6. python判断是否为素数的函数 是返回字符串yes_编写函数,判断一个数字是否为素数,是则返回字符串 YES ,否则返回字符串 NO 。_学小易找答案...
  7. html中img显示旋转,css如何实现图片的旋转展示效果(代码示例)
  8. 微信小程序获取手机号 前台+php后台
  9. Oracle 常见错误代码处理 1
  10. LayaAir 图集动画1—图集制作