最近要实现一个功能,上传SQL文件,后台执行上传SQL文件导入MYSQL数据库。实现方式:
1、读取上传文件,添加到Batch中批量执行。
String sql = "";
BufferedReader br = new BufferedReader(new FileReader(file));
while ((sql = br.readLine()) != null) {//使用readLine方法,一次读一行
if (sql.length() > 1) {
if (isFirstLine) {
sql = sql.substring(1);
}
stmt.addBatch(sql);
executeCount++;
}
isFirstLine = false;
}
br.close();
缺点:必须一行是一个可执行SQL语句。
2、将上传SQL文件读取到BufferedReader中,调用mysql执行。
Process child = rt.exec("mysql -uroot -proot --default-character-set=utf8 prototype ");
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
String line;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(fPath), "utf8"));
while ((line = br.readLine()) != null) {
sb.append(line + "\r\n");
}
outStr = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
writer.write(outStr);
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
out.close();
br.close();
writer.close();
3、通过Runtime.exec方法,直接调用mysql导入功能导入。2部操作
String username = "root";//用户名
String password = "root";//密码
String host = "localhost";//导入的目标数据库所在的主机
String port = "3306";//使用的端口号
String character = "utf8";// 默认字符集
String importDatabaseName = "prototype";//导入的目标数据库的名称
String importPath = file.getAbsolutePath();//导入的目标文件所在的位置
//第一步,获取登录命令语句
StringBuilder sb = new StringBuilder();
sb.append("mysql -u").append(username);
sb.append(" -p").append(password);
sb.append(" -h").append(host);
sb.append(" -P").append(port);
sb.append(" --default-character-set=").append(character);
String loginCommand = sb.toString();
//第二步,获取切换数据库到目标数据库的命令语句
String switchCommand = new StringBuilder("use ").append(importDatabaseName).toString();
//第三步,获取导入的命令语句
String importCommand = new StringBuilder("source ").append(importPath).toString();
//需要返回的命令语句数组
String[] commands = new String[] { loginCommand, switchCommand, importCommand };
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(commands[0]);
//执行了第一条命令以后已经登录到mysql了,所以之后就是利用mysql的命令窗口
//进程执行后面的代码
OutputStream os = process.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(os);
//命令1和命令2要放在一起执行
writer.write(commands[1] + "\r\n" + commands[2]);
writer.flush();
writer.close();
os.close();
process.destroy();
4、通过Runtime.exec方法,直接调用mysql导入功能导入。1部操作
String cmd = "cmd /c mysql -uroot -proot --default-character-set=utf8 prototype < \""
+ file.getAbsolutePath() + "\"";
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(cmd);
p.waitFor();
p.destroy();
分享到:
相关推荐
在给定的标题“java调用mysql命令 导入导出数据库”中,我们可以理解为使用Java来执行MySQL的命令行工具,如`mysqldump`和`mysql`,来实现这些功能。下面将详细讲解如何在Java程序中调用这些命令。 首先,让我们...
在Java编程环境中,将MySQL数据库的数据导入到Excel或者将Excel数据导出到MySQL是一项常见的任务。这涉及到对Java处理文件、数据库操作以及处理Excel数据的能力。以下是对这个主题的详细阐述: 1. **Java处理Excel*...
Java 编程Excel 导入 MySQL 知识点 简介 本文档主要讲述了如何使用 Java 编程语言将 Excel 文件导入到 MySQL 数据库中。该过程涉及到 Excel 文件的读取、数据提取、数据库连接和数据INSERT 操作。 Java 读取 Excel...
在Java开发中,将Excel表格数据导入MySQL数据库是一项常见的任务,尤其在数据处理、数据分析以及系统集成等场景中。这个项目提供了一套完整的源码,可以直接在Eclipse环境中运行,帮助开发者快速实现这一功能。下面...
在Java编程中,连接MySQL数据库是一项基础且重要的任务。为了实现这一目标,开发人员需要引入特定的驱动程序,即MySQL的Java连接器(JDBC驱动)。在这个场景中,提到的"mysql-connector-java-5.1.7-bin.jar"正是这样...
本话题主要探讨如何使用Java程序导出MySQL数据库中的数据。以下将详细讲解相关概念和技术。 首先,导出MySQL数据最常用的方式是通过命令行工具`mysqldump`。`mysqldump`是一个实用程序,它能备份MySQL数据库,生成...
本项目"java实现Excel数据导入到mysql数据库"旨在利用Java技术将Excel表格中的数据高效地导入到MySQL数据库,并且在数据库中存在相同数据时进行更新,同时也支持将数据库中的数据导出到Excel表中。这个过程涉及到多...
总之,这个压缩包为初学者提供了一个基础的Java连接MySQL的实例,同时也包含了运行这些示例所需的所有库文件。通过学习和理解这些代码,你可以掌握Java如何与MySQL数据库进行交互,并在此基础上构建更复杂的数据库...
在Java编程环境中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理、数据分析或者系统集成时。本文将详细讲解如何使用Java实现这一过程,包括读取Excel文件、建立对应的MySQL表结构以及数据的迁移。...
本文将详细介绍如何利用Java实现从Excel批量导入数据到MySQL数据库。 首先,我们需要了解两个关键的库:Apache POI 和 JDBC。Apache POI 是一个开源的Java库,用于读写Microsoft Office格式的文件,包括Excel。JDBC...
知识点:MySQL 数据库的导入与导出操作及 Java 实现 在 IT 行业中,数据库的管理和维护是一项至关重要的工作。特别是在 MySQL 这样的流行关系型数据库管理系统中,数据的备份与恢复变得尤为重要。本篇文章将深入...
MySQL Connector/J是MySQL官方提供的Java数据库连接器,它实现了Java Database Connectivity (JDBC) API,使得Java开发者能够通过编写Java代码来执行SQL语句,处理数据库中的数据。JDBC是Java平台上的一个标准接口,...
总的来说,"mysql-connector-java-5.1.48"是Java与MySQL数据库间通信的关键桥梁,它提供了在Java应用中执行SQL查询、管理数据、处理事务等功能。在开发过程中,正确配置和使用这个驱动包,能够帮助开发者高效地与...
在Java项目中,我们需要添加MySQL的JDBC驱动(如mysql-connector-java.jar)作为依赖,以便能够执行SQL语句并获取数据。 接下来,我们需要处理Excel文件。Java中常用的处理Excel文件的库有Apache POI。Apache POI是...
首先,`logstash数据从mysql导入es所需mysql的jar包`指的是Logstash需要连接到MySQL数据库,这就需要用到Java Database Connectivity (JDBC) 驱动。MySQL的JDBC驱动是一个Java类库,允许Java应用程序与MySQL数据库...
总结来说,这个"java连接mysql代码范例.rar"提供了基础的Java与MySQL交互的步骤,包括连接数据库、执行SQL和处理结果。对新手来说,这是一个很好的起点,有助于理解数据库操作的基本概念。对于有经验的开发者,这些...
这个场景描述的是一个典型的Java程序从Excel文件中读取数据,然后将这些数据导入到MySQL数据库的过程。下面我们将深入探讨这个过程涉及的技术点和实现步骤。 首先,Java用于读取Excel内容时,通常会用到Apache POI...
你可以导入这个脚本到MySQL数据库中,以便于在本地环境中运行和调试这个在线商城项目。 总的来说,这个项目为你提供了一个实践Java Web开发的平台,涵盖了从数据库设计、后端开发到前端展示的全链条知识。通过深入...