求教JAVA如何将txt文件的大量数据内容导入到mysql中 手里的项目是从网上下载txt文档然后存入mysql,下载下来的txt内容没有格式,没有换行,但是导入到xls或者是mysql中(cmd导入)是有结构的。现在需要用程序直接控制将这个txt里的数据入库mysql,请问大侠们这个东西该怎么弄?最好可以提供实例的代码,小可先行拜谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 txt内容,比如怎么判断一个记录结束,用IO流一个一个字节的读取,把记录转换成相应的记录再通过T-SQL语句插入就可以了。 因为这个txt的内容杂乱无章,但是通过cmd导入到mysql中之后结构还在,所以我考虑是不是可以让java控制cmd去导入这个mysql。但是试了很多方法都不行。不知道该怎么解决 导入到Xls或者Mysql里有结构,说明一般是Tab键分割的用java来分析文本再转换成sql效率太低了且消耗读文件的内存,既然命令行可以执行到数据库的导入,那就直接在Java里调命令行来操作即可,注意一下放文件的相对路径及执行命令的权限即可Runtime.exec() 嗯,我就是想知道怎么用Runtime.exec()可以将它弄进去。public boolean insert() { boolean bool = false; String file = "c:/my works/apple/WebRoot/Daily/txt/1.txt"; String table = "daily"; String cmd1 = "mysql -h localhost -uroot -p111"; String cmd2 = "use applelist"; String cmd3 = "LOAD DATA LOCAL INFILE '"+file+"' INTO TABLE "+table; System.out.println(cmd1); System.out.println(cmd2); System.out.println(cmd3); try { Process p1 = Runtime.getRuntime().exec("cmd.exe /C " + cmd1 + cmd2 +cmd3); Process p2 = Runtime.getRuntime().exec("cmd.exe /C " + cmd2); Process p3 = Runtime.getRuntime().exec("cmd.exe /C " + cmd3); p1.getOutputStream().close(); int exitValue1 = p1.waitFor(); System.out.println("返回值:" + exitValue1); p2.getOutputStream().close(); int exitValue2 = p2.waitFor(); System.out.println("返回值:" + exitValue2); p3.getOutputStream().close(); int exitValue3 = p3.waitFor(); System.out.println("返回值:" + exitValue3); Process p4 = Runtime.getRuntime().exec(cmd1 + table + "<" + file); bool = true; } catch (Exception e) { e.printStackTrace(); } return bool; }我弄了这么个东西执行完了没作用,不知道怎么弄,没学过Runtime.exec()之类的东西。又查不到好多,所以上来问一下,谁能帮忙弄弄啊,谢了。 Process p1 = Runtime.getRuntime().exec("cmd.exe /C " + cmd1 + cmd2 +cmd3);这开始是3句分别弄不行,我又连到一起,贴过来的时候没注意。剩下的都是找的东西,根本执行不了,不明白这个东西的机制。 把这些命令做成bat命令提示文件.再用java命令运行bat文件 java 线程池问题、高手进来看看、急急急!!! 一道算法题,大家来看看 JTable使用TableRowSorter排序后增加行越界问题 jPanel怎么注册快捷键? 如何把A,B,C,D,E...转换为1,2,3,4..才比较高效? 我怎么用JAVAMAIL发一封别人没有没有办法回复的邮件? 局部变量前面加 final 有什么特殊用途? String 和 byte[]的转换? 高手们!!帮我完善这个程序 关于CallableStatement类使用的疑问??急!急!急! 如何实现模糊查找? 关于结果集的resultSet.deleteRow()
boolean bool = false;
String file = "c:/my works/apple/WebRoot/Daily/txt/1.txt";
String table = "daily";
String cmd1 = "mysql -h localhost -uroot -p111";
String cmd2 = "use applelist";
String cmd3 = "LOAD DATA LOCAL INFILE '"+file+"' INTO TABLE "+table; System.out.println(cmd1);
System.out.println(cmd2);
System.out.println(cmd3);
try {
Process p1 = Runtime.getRuntime().exec("cmd.exe /C " + cmd1 + cmd2 +cmd3);
Process p2 = Runtime.getRuntime().exec("cmd.exe /C " + cmd2);
Process p3 = Runtime.getRuntime().exec("cmd.exe /C " + cmd3); p1.getOutputStream().close();
int exitValue1 = p1.waitFor();
System.out.println("返回值:" + exitValue1);
p2.getOutputStream().close();
int exitValue2 = p2.waitFor();
System.out.println("返回值:" + exitValue2);
p3.getOutputStream().close();
int exitValue3 = p3.waitFor();
System.out.println("返回值:" + exitValue3);
Process p4 = Runtime.getRuntime().exec(cmd1 + table + "<" + file);
bool = true;
} catch (Exception e) {
e.printStackTrace();
}
return bool;
}我弄了这么个东西执行完了没作用,不知道怎么弄,没学过Runtime.exec()之类的东西。又查不到好多,所以上来问一下,谁能帮忙弄弄啊,谢了。
这开始是3句分别弄不行,我又连到一起,贴过来的时候没注意。
剩下的都是找的东西,根本执行不了,不明白这个东西的机制。