OracleCYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 公布

[Tip:二〇一二-05-一九一二:55左右纠正个别Bug后再一次上传了弹指间,此前下载的新再一次下载。]

 

杂七几句:

自从购买VPS之后,打算将
秋色园QBlog 搬迁,也想把近来的Access数据库换来别的数据库。

鉴于VPS唯有512M内部存款和储蓄器,装完系统都快300M,跑MSSQL二〇〇七太费事,所以就不装了。

刚巧系统私下认可装了MySql,于是就打算在MySql中跑一下。

 

秋色园QBlog 一早先就用上了CYQ.Data 的多数据库解析标签,能分析各数据库的差距化代码或函数。

为此更换数据库是大概是0开支的,代码是不用动的,唯一要想的正是怎么生成MySql的表结构和把数据导过去。

 

于是乎自然第三反响正是上网搜“Access导数据到MySql”的工具:

1:好不不难下了3个,安装后私下认可带插件导航网页,只好说一声奔驰G级I,然后立刻卸了,还得手动删除插件文件,这几个纠结。

2:再后来,搜到二个细密的工具,看似能导,导了几条数据后就没反应了,结果一看,是个德姆o版本,那下更纠结了。

3:再然后,寻到了“Navicat for
MySQL”,用它导数据,3万多篇章给作者导不见了2万多,特纠结。

可是有个好处,就是帮着生成了表结构,可惜这表结构也不实在,只好勉强,数据类型对不上号,还得投机大大的改一下:

看原来的Bit生成后变成任何品类,就随手把MySql也改成Bit,结果发现数据导不进来了,因为Access是true/false,MySql是1/0,报数据长度too
long,本来作品就丢了过多,那又来个门类不对称,纠结中带点控制。

4:问从前同事有没有怎么样好工具,同事说,你照旧本人写代码吧。没折,就控制自个儿写代码了。

 

刚好
CYQ.Data 的MDataTable已完成了批量安顿[不带自增ID]和批量更新效能[按需更新]。

 

想着,把它扩张一下,扩张带ID的插入,就成了批量导数据功效了:

于是从头繁忙的敲代码,做测试,在依次数据库间转来复去,折腾了几天,纵然中间被一些难点卡住了很久,比如MySQL的字符集难题,不过依然终见成果了。

批量导入效用完成后,写了个DOS版本工具,用于批量把一切数据库数据从Access导到MySQL中。

后来让秋色园在MySQL跑了一圈,碰到了过多MySql的标题,如动则就十几或几十秒的询问,太过那贰个,发动群众测试之后:

意识是暗中认可配置难题,须要把内部存储器配置上来,修改my.ini扩大内部存款和储蓄器后,速度也健康上去了。

心痛VPS内部存款和储蓄器不多,和MySql耗不起,只能作罢,于是顺道把数量导到SQLite、Oracle、Sql2000下也跑了一圈。

改进了各自函数解析后,全部正规运营,SQLite下发现速度和Access没啥差别,Oracle下须求充实索引,速度才健康。

最近:秋色园示例版本:http://demo.cyqdata.com/ 运营在Sql2000的数据库下。

可是秋色园近日仍运转在Access数据库版本中。

 

此时,CYQ.Data 的MDataTable已拥有了批量导数据工具,按说来应该很强大了。

 

接着之后几天就像“领域驱动”挺热的,于是又生出了一个想法:

让CYQ.Data也“驱动”一下,若从MDataTable的Columns列结构,能够反向生成差别数据库的表结构,那样在应用CYQ.Data开发的时候,就能够形成“Code
First”了,可以毫不优先考虑数据库问题。

再接着,又转来复去在各数据库间,调优代码,数据类型转换,测试,生成,示例,代码,修改,再测试,一堆又一堆,又花了几天,终于也落成了,CYQ.Data
强大的反向工程效能也成功了。

 

为了更方便的应用,于是花了一个夜间写了个
CYQ.DBImport 工具,再花了一天调试代码,终于也就有了以下的内容:

 

主成效介绍:

 

1:数据库反向工程效益

能够从任意
CYQ.Data 协理的数据库,生成别的数据库脚本。

日前支撑的数据库:Access、Sql3000/2007/二零零六、Oracle、MySql、Sqlite。

 

2:批量导数据效用

可以从随机数据库校官数据导向另1个数据库。

出于具有反向生成其余数据库脚本功能,因而会自动物检疫查和测试是还是不是存在钦点表:

若表不存在,则自动创建表;

若表存在,则直接导入数据。

 

界面及选取介绍:

 

1:双击运行,见:主界面

Oracle 1

说明:

1:DBConnection From:从哪个数据库导数据。

2:DBConnection To    :把数据导向哪个数据库。

 

2:输入DBConnection From的数据库链接,点击链接Connect

Oracle 2

说明:

ReadMe:有各类数据库链接示例Demo,不用操心不会写。

Tables:数据库的表

(Un)Check All:对表的全选和反选。

 

3:[可选步骤]选料ViewDBSql,查看反向变化的表脚本,若不合意,还足以自个儿修改。

 

A:从Mssql的Blog_File表生成Access表结构的截图

Oracle 3

 

B:从Mssql的Blog_Visit表生成MySql表结构的截图

Oracle 4

说明:

1:点击左右的表,再采取右侧的DalType,就能够见见变化不相同的表结构。

2:Execute DBSql:能够推行任意SQL语句,私下认可不可用,把DBConnection
To的链接字符串填上,

点击Connect成功后就复苏可用状态。

 

4:填写DBConnection To的数据库链接,点击链接:Connect

Oracle 5

说明:

链接成功后:Execute DBSqlImport Go[导数据]卷土重来可用状态。

 

5:选拔要导数据的表,依照供给勾选[Import By Pager],点击“Import
Go”,早伊始数据

Oracle 6

说明:

1:Import By
Page:是指分页查询并导数据,假设数据量相当大,最好是使用这种格局举办,不然默许1回性读取全部数据后再开展扦插时,读数据时就卡死了。

2:依照表明,分页导数据时,若DBConnection
From的链接为Mssql/Oracle数据库,则供给有CYQ.Data相应的分页存款和储蓄过程,具体能够到地点提示的网址上找,新近刚公布了,秋色园和新浪都有。

 

6:批量导数据库实现了,提醒完结

Oracle 7

 

总结:

本工具是依据CYQ.Data
数据框架
做到的,欢迎使用与关注CYQ.Data

 

CYQ.DBImport 下载地址:http://www.cyqdata.com/download/article-detail-426

 

其它附加哆嗦几句:

1:不要问源码,该公告时会公布。

2:开源!=免费,不了然的先上网看下相关资料,当然,没开源也不肯定是收费的。

3:索要源码时,问下自个儿,你都贡献了哪些?别只知索取,人家上辈子应该没欠你什么样,要求你今生苦苦的追索或漫骂。

 

相关文章