下面我们简单地对存储过程进行解释。Createsingleip存储过程生成IP地址格式的数字,每次调用都会返回一个0~255的随机数字;Createsinglechar存储过程生成一个a~z或A~Z的随机字符;Createwholestr 存储过程调用createsiglechar存储过程生成10~20位长度的字符串;Insertrandstr存储过程新建一张testtable表,然后反复调用前面三个存储过程,进行插入操作,完成数据的添加。
无论如何通过SQL生成数据在维护和开发上总是比较麻烦的,这里推荐一个非常好用的数据生成工具DataFactory来解决环境搭建中需要进行大容量生成的问题。
DataFactory是一种快速的、易用的、超强的数据产生器,它允许开发人员和QA很容易产生百万行有意义的、正确的测试数据库,DataFactory?首先读取一个数据库方案,用户随后单击鼠标产生一个数据库。该工具支持DB2、Oracle、Sybase、SQL Server数据库,并且还支持ODBC的连接方式,如果使用的系统是MySQL的话,那么是无法直接使用DataFactory来生成数据的。
那么如何使用DataFactory连接MySQL数据库呢?虽然DF没有提供对MySQL的直接连接,但是可以通过ODBC的方式来过渡,这里需要注意MySQL默认不支持ODBC,所以先安装MyODBC工具来实现ODBC和MySQL的连接,再让DF通过ODBC的方式连接MyODBC,从而实现曲线救国。
1.为Discuz NT 2.5生成测试数据
我们来看看如何使用DataFactory快捷地完成构建10万条帖子记录数据的构建工作。
Step01 打开DataFactory,新建一个数据库连接,设置DataFactory连接数据库类型为SQL Server,如图6.31所示。
图6.31 DF中添加一个SQL Server数据库连接
Step02 在DataFactory中输入数据库的连接信息,如图6.32所示。
图6.32 在DataFactory中设置SQL Server数据库连接信息
Step03 检测通过后,DataFactory会列出该数据库中所有的表,选出需要注入数据的表后,就可以设置对于该表的数据插入数目和数据格式了。添加dnt_posts1和dnt_topics表,如图6.33所示。
图6.33 DataFactory中选择需要生成数据的表名