`
wanghlwin
  • 浏览: 37721 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于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 重启以后就会恢复默认,所以为了不让乱码有机可乘,最好每次对数据库写中文的时候加上这句话。
分享到:
评论

相关推荐

    java调用mysql命令 导入导出数据库

    在Java编程中,调用MySQL命令...综上所述,Java调用MySQL命令导入导出数据库涉及到了JDBC接口的使用、系统命令的执行以及数据库管理的基本操作。在实际应用中,我们还需要关注错误处理、安全性以及依赖管理等多个方面。

    java调用bat批处理与sh脚本

    - **权限问题**:执行外部命令可能需要相应的文件执行权限,确保Java进程有权限访问并执行批处理文件或Shell脚本。 - **错误输出**:调用`Process.getErrorStream()`和`Process.getInputStream()`可以获取命令执行的...

    java调用批处理

    在Java编程中,调用批处理操作是一种常见的需求,特别是在处理大量数据或执行自动化任务时。批处理可以提高效率,因为它允许一次性处理多个输入,而不是逐个处理。本篇文章将探讨如何在Java中调用批处理,以及相关的...

    用JAVA导出MYSQL的数据

    总结起来,使用Java导出MySQL数据的关键在于正确调用系统命令`mysqldump`,并管理好输入输出流以确保数据的完整性和编码正确性。同样,导入数据时也需调用`mysql`命令,并确保所有相关的环境变量和权限设置都已就绪...

    编写批处理命令来执行JAVA文件

    本篇将深入讲解如何编写批处理命令来执行JAVA文件,以及相关知识点。 1. **批处理文件介绍** 批处理文件(.bat)是一种文本文件,包含了可执行的DOS命令。当用户运行这个文件时,Windows会逐行解析并执行这些命令...

    dos批处理命令详解

    ### DOS批处理命令详解 #### 一、Echo 命令 **功能**: Echo 命令用于在...以上是关于 DOS 批处理命令的基本介绍与示例,这些命令对于编写批处理脚本非常有用。通过这些命令,可以实现自动化任务的执行,提高工作效率。

    C#.net通过程序执行批处理命令

    批处理,也称为批处理脚本,是将一系列操作系统命令写入一个文本文件(通常以.bat或.cmd为扩展名)中,然后通过调用这个文件来一次性执行这些命令。这种方式在Windows环境中非常常见,可以极大地提高工作效率。 在...

    Java实现调用MySQL存储过程详解

    在Java应用程序中,可以通过Java Database Connectivity (JDBC) API来调用MySQL的存储过程。 首先,确保你已经安装了MySQL数据库,并且在数据库中创建了一个或多个存储过程。例如,`findAllBook`、`pro_test`和`pro...

    批处理命令大全 批处理命令大全

    ### 批处理命令大全解析 批处理是一种在操作系统中用于自动化执行一系列命令的脚本语言。通过批处理脚本,用户可以批量执行复杂的任务,节省时间和提高效率。本文将深入探讨批处理中的一些核心命令,包括`Echo`、`@...

    Windows批处理命令实例分析(World文档)

    Call命令用于在一个批处理文件中调用另一个批处理文件,调用完成后返回原始批处理继续执行。它可以接受标签作为参数,允许在批处理内部进行流程控制。 7. Start命令: Start命令可以启动一个新的命令提示符窗口来...

    批处理命令在WINDOWS操作中的典型应用

    批处理命令中可以使用变量来存储数据,如 `%var%`。同时,批处理文件可以接收命令行参数,例如`%1`, `%2`, `%3`等,分别代表第一个、第二个、第三个参数。例如,创建一个接受两个参数的批处理文件: ```batch @echo ...

    windows批处理命令详解及脚本实例.pdf

    4. CALL命令:CALL命令用于在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。 例:批处理2.BAT 内容如下: ECHO 这就是 2 的内容 批处理1.BAT 内容如下: ECHO 这是 1 的内容 ...

    免费下载:自己整理的批处理命令文档

    批处理命令文档是一份集合了大量Windows操作系统中批处理(Batch)技术的参考资料,它涵盖了批处理的基础知识、常用命令以及高级应用技巧。批处理是Windows环境下自动化执行一系列命令的操作方式,极大地提高了用户...

    电脑清理垃圾批处理命令

    批处理命令是Windows操作系统中的一种脚本语言,用于自动化执行一系列命令行操作。"电脑清理垃圾批处理命令"指的是利用批处理文件来批量清理计算机中的无用文件,提高系统性能和磁盘空间利用率。下面我们将深入探讨...

    利用java 导入Excel表格数据到mysql数据库里,源码,直接导入eclipse就可以运行

    在Java开发中,将Excel表格数据导入MySQL数据库是一项常见的任务,尤其在数据处理、数据分析以及系统集成等场景中。这个项目提供了一套完整的源码,可以直接在Eclipse环境中运行,帮助开发者快速实现这一功能。下面...

    C#执行批处理命令

    在Windows操作系统中,批处理命令(Batch Command)是一种自动化执行一系列命令的方式,它允许用户将多个命令写入一个文本文件,然后通过简单的调用该文件来执行这些命令。在C#编程环境中,我们可以利用.NET ...

    mysql java JDBC 导入资源包mysql-connector-java-5.1.48

    MySQL是世界上最流行的开源关系型数据库管理系统之一,而Java是一种广泛使用的多平台开发语言,两者结合使用,通过Java Database Connectivity (JDBC) API,可以实现Java应用程序与MySQL数据库之间的交互。...

    Windows批处理命令大全

    ### Windows批处理命令详解 #### 1. Echo 命令 **命令格式:** ```bat echo[{on|off}][message] ``` - **功能描述:** `echo` 命令用于显示消息或者开启/关闭命令回显。 - **参数说明:** - `on` 或 `off`: 控制...

    Bat批处理命令使用教程

    ### Bat批处理命令使用教程详解 #### 批处理概念与特点 批处理是一种在计算机操作系统中执行一系列预先定义好的命令序列的方式。它通常用于自动执行重复性任务或一系列相关操作,提高了工作效率并减少了人为错误的...

Global site tag (gtag.js) - Google Analytics