`
- 浏览:
37867 次
- 性别:
- 来自:
北京
-
关于Java调用批处理命令向mysql导入数据的中文乱码问题
(转载请标明作者和出处,谢谢合作。)
最近写了个很没意思的小工具,写到一半的时候发现,mysql的可视化工具里面有可以导入excel文件的工具。不过步骤太多不适合不懂sql的人使用,由此,还是将写到一半的小工具给完成了吧,此工具对于懂代码的人来说没有任何的意义,因为你完全可以使用工具来做。我之所以写这个工具姑且说是一个平台吧,由于要让公司销售渠道上的人来使用,他不需要懂代码,也不需要操作这么繁琐的mysql工具。
半天没有进入正题,大体的说一下它的功能吧,就是把excel中的内容插入到数据库中(Mysql)。 渠道人员在平台上上传excel文件,并选择要导入的表,和表中的哪些列(当然这些列的顺序可以自己随意的调整)。平台就可以自动的为他将excel中的内容插入到所选表的所选列中,同时生成sql文件。
平台的内部实现,其实是先将excel中的内容拼接成sql语句,并写入到硬盘的sql文件中去,再由Java来调用批处理命令来执行导入刚才生成的sql文件。调用批处理的代码如下:
public void executeSql(String sqlFilePath) throws IOException{
String command = "cmd /c mysql -urichmobi -prichmobi heima_2012_3 < d:\\sql_Output.sql";
Runtime.getRuntime().exec(command);
}
但是中途遇到一个问题,我在第一步将excel中的内容生成sql语句的时候,采用的编码都是utf-8的,我的mysql数据库编码也是utf-8,sql语句中的内容也大多都是中文的,想着应该没有问题。但是问题发生了,在导入完成后发现库中的内容都为乱码,很郁闷。。不都是utf-8的吗。一时间不知道是哪里出了问题。各种百度谷歌也没查到,于是乎想起来这个命令 :set names utf8; 于是乎就ok了。暂时的解决方案就是 :“set names utf8;”作用只是临时的,在mysql 重启以后就会恢复默认,所以为了不让乱码有机可乘,最好每次对数据库写中文的时候加上这句话。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
### Java调用批处理知识点详解 #### 一、概述 在Java中,有时我们需要执行一些系统级别的任务,比如启动一个程序或执行一个脚本。此时,我们可以通过Java调用来实现这些功能。Java提供了多种方法来调用外部命令,...
在Java编程中,调用MySQL命令...综上所述,Java调用MySQL命令导入导出数据库涉及到了JDBC接口的使用、系统命令的执行以及数据库管理的基本操作。在实际应用中,我们还需要关注错误处理、安全性以及依赖管理等多个方面。
- **权限问题**:执行外部命令可能需要相应的文件执行权限,确保Java进程有权限访问并执行批处理文件或Shell脚本。 - **错误输出**:调用`Process.getErrorStream()`和`Process.getInputStream()`可以获取命令执行的...
Call 命令从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件中使用call命令,则可以实现批处理程序之间的调用。语法为`call label`,其中...
在Java编程中,调用数据库存储过程是一种常见的操作,特别是在处理复杂的业务逻辑或者批量数据操作时。本篇文章将深入探讨如何使用Java与MySQL数据库进行交互,实现调用存储过程,并提供一个测试通过的实例。 首先...
在Java编程中,调用批处理操作是一种常见的需求,特别是在处理大量数据或执行自动化任务时。批处理可以提高效率,因为它允许一次性处理多个输入,而不是逐个处理。本篇文章将探讨如何在Java中调用批处理,以及相关的...
总结起来,使用Java导出MySQL数据的关键在于正确调用系统命令`mysqldump`,并管理好输入输出流以确保数据的完整性和编码正确性。同样,导入数据时也需调用`mysql`命令,并确保所有相关的环境变量和权限设置都已就绪...
本篇将深入讲解如何编写批处理命令来执行JAVA文件,以及相关知识点。 1. **批处理文件介绍** 批处理文件(.bat)是一种文本文件,包含了可执行的DOS命令。当用户运行这个文件时,Windows会逐行解析并执行这些命令...
### DOS批处理命令详解 #### 一、Echo 命令 **功能**: Echo 命令用于在...以上是关于 DOS 批处理命令的基本介绍与示例,这些命令对于编写批处理脚本非常有用。通过这些命令,可以实现自动化任务的执行,提高工作效率。
这可以通过在SQL文件中写入相应的命令,并通过批处理文件来调用。 例如,在`testsql.sql`文件中可以写入以下SQL命令: ```sql SELECT * FROM table_user; ``` 然后通过上面提到的批处理命令执行该文件,从而完成对...
批处理,也称为批处理脚本,是将一系列操作系统命令写入一个文本文件(通常以.bat或.cmd为扩展名)中,然后通过调用这个文件来一次性执行这些命令。这种方式在Windows环境中非常常见,可以极大地提高工作效率。 在...
在Java应用程序中,可以通过Java Database Connectivity (JDBC) API来调用MySQL的存储过程。 首先,确保你已经安装了MySQL数据库,并且在数据库中创建了一个或多个存储过程。例如,`findAllBook`、`pro_test`和`pro...
### 批处理命令大全解析 批处理是一种在操作系统中用于自动化执行一系列命令的脚本语言。通过批处理脚本,用户可以批量执行复杂的任务,节省时间和提高效率。本文将深入探讨批处理中的一些核心命令,包括`Echo`、`@...
Call命令用于在一个批处理文件中调用另一个批处理文件,调用完成后返回原始批处理继续执行。它可以接受标签作为参数,允许在批处理内部进行流程控制。 7. Start命令: Start命令可以启动一个新的命令提示符窗口来...
批处理命令中可以使用变量来存储数据,如 `%var%`。同时,批处理文件可以接收命令行参数,例如`%1`, `%2`, `%3`等,分别代表第一个、第二个、第三个参数。例如,创建一个接受两个参数的批处理文件: ```batch @echo ...
Java程序调用linux命令、脚本,支持程序在服务器上使用linux命令。工具类为:ProcessUtil,支持单个命令和批量命令执行函数,同时在工具类中添加了getFileLineNumByCmd函数支持通过linux命令获取文件行数的样例。
这个压缩包文件“2008821125050.chm”很可能包含了一份详尽的DOS内部命令和批处理命令的参考手册。下面将详细阐述DOS系统中的核心概念以及这些命令的作用。 一、DOS内部命令 1. **DIR**:显示目录中的文件和子目录...
**批处理命令集详解** 批处理(Batch Processing)在DOS操作系统中是一种高效自动化执行一系列命令的方法,尤其适用于需要重复执行相同操作的情况。通过编写批处理脚本(.bat文件),用户可以简化日常任务,提高...
4. CALL命令:CALL命令用于在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。 例:批处理2.BAT 内容如下: ECHO 这就是 2 的内容 批处理1.BAT 内容如下: ECHO 这是 1 的内容 ...