ods数据导入mysql

    之前记录了mdb格式中的数据如何导出,这次是ods格式。

    为了导出数据,还专门查阅了用Java操作openoffice的相关库,并做了简单的测试,确实很方便就能读取到ods中表的内容。但是,读取出来以后如何放到针对mysql数据表的JavaBean中还是个问题。首先的思路是写一个一劳永逸的通用方法,使用具体JavaBean作为参数,在方法内获取ods的数据后,利用反射机制得到JavaBean的构造方法,然后把数据填进去,最后传个List出来。结果还是Java功力不够深厚,未能实现。最大的阻碍在于每一个JavaBean的构造需要不同的参数,反射获取构造方法时还需要指定参数列表才能得到相应的构造方法。想到一个解决方法:把参数列表也作为参数,与JavaBean一起传到通用方法中;不过这样就整的太复杂了,倒个百十来条的数据,何必呢。

    本着“做懒人”的原则,看到了phpmyadmin能把csv导入到mysql中,而ods能够直接导出csv,于是果断奔向了phpmyadmin。安装以后,直接导入。在导入选项里多看了两眼,支持的格式包括:csv、sql、xml,还有...居然还有openoffice表格,这次真是冤了。果断直接选择openoffice导入,一秒,二秒...页面华丽丽的一刷,数据全部导入。果然以后还是要更懒一点...

    想到之前mdb转出的sql导入mysql时间太长,干脆把mdb转出csv试试吧。没想到这部分数据过大,其实也就20M,但是phpmyadmin提示文件超限,并给出了参考文档的链接:http://localhost/phpmyadmin/Documentation.html#faq1_16,看了一下,原来是php本身在网络上传文件时做了限制,需要修改php.ini。按照文档修改完成以后就可以上传了。心想这次应该没有问题了,点“执行”,页面刷出了一片空白...重复了几次都不行,看了这个已然超出phpmyadmin的能力范围了。

    没办法,刚才一激动已经把mdb转出的那张表删除了,重新倒吧,一想到那么长时间就郁闷。想想应该是mdb-export转出的insert语句存在问题吧,于是用mysql导出某表的sql文件,与mdb-export做了一下对比,果然还是有差的。mdb-export为每条记录转出了一个insert语句,而mysql导出的sql是一条批处理的insert。于是,把mdb-export转出的sql文件中多余的insert语句删除,再导入mysql中,一秒、二秒、三秒...导入成功!这速度真是差得不是一星半点啊...

    猜测一下,应该是原先每次insert都需要连接一次数据库,而批处理的那个只需要连接一次,这样导致多出来的时间全部是连接数据库的操作时间,这个就有待求证了。


    

你可能感兴趣的:(工作日常)