数据库数据自动生成工具dbmonster

在对程序进行测试时,需要向数据库中插入大量数据来进行模拟。目前有很多工具可以自动生成,比如开源的dbmonster。

该工具通过配置数据库表的信息就可以生成指定条数的数据。
从网站上下载dbmonster-core-1.0.3包后,把相应的数据库jar包拷贝到lib目录下,比如mysql的jar包。然后配置 dbmonster.properties:
dbmonster.jdbc.driver=com.mysql.jdbc.Driver
dbmonster.jdbc.url=jdbc:mysql://127.0.0.1:3306/test?charSet=utf-8
dbmonster.jdbc.username=root
dbmonster.jdbc.password=root

# for Oracle and other schema enabled databases
dbmonster.jdbc.schema=test

# maximal number of (re)tries
dbmonster.max-tries=1000

# default rows number for SchemaGrabber
dbmonster.rows=1000

# progres monitor class
dbmonster.progress.monitor=pl.kernelpanic.dbmonster.ProgressMonitorAdapter
  dbmonster.progress.monitor=pl.kernelpanic.dbmonster.ProgressMonitorAdapter
从配置项可以看出,就是配置要插入数据的数据库信息。
然后配置dbmonster-schema.xml来设置要插入的数据库表以及表的字段信息:
<?xml version="1.0"?>
<!DOCTYPE dbmonster-schema PUBLIC "-//kernelpanic.pl//DBMonster Database Schema DTD 1.1//EN" "http://dbmonster.kernelpanic.pl/dtd/dbmonster-schema-1.1.dtd">
<dbmonster-schema>
  <name>test schema</name>
  <table name="t_project_test" rows="5000">  <!-- 设置表名和要生成的数据条数-->
    <key databaseDefault="false"> <!-- 设置主键-->
      <generator type="pl.kernelpanic.dbmonster.generator.MaxKeyGenerator">   <!-- 主键生成器,还有一个生成字符串主键的StringKeyGenerator类-->
        <property name="columnName" value="id"/> <!-- 设置主键列名-->
      </generator>
    </key>
    <column name="contractid" databaseDefault="false">
      <generator type="pl.kernelpanic.dbmonster.generator.NumberGenerator">   <!-- 设置列属性,数字生成器-->
        <property name="minValue" value="1"/>
        <property name="maxValue" value="500"/>
        <property name="returnedType" value="integer"/>  <!--可选值short, integer, long, float, double, numeric,默认为short-->
        <property name="scale" value="
        <property name="nulls" value="0"/>  <!-- 每100个生成null的概率-->
      </generator>
    </column>
    <column name="contractnum" databaseDefault="false">
      <generator type="pl.kernelpanic.dbmonster.generator.StringGenerator"> <!-- 字符串生成器-->
        <property name="allowSpaces" value="false"/>
        <property name="excludeChars" value=""/>
        <property name="maxLength" value="16"/>
        <property name="minLength" value="12"/>
        <property name="nulls" value="0"/>
      </generator>
    </column>
 <column name="number" databaseDefault="false">
      <generator type="pl.kernelpanic.dbmonster.generator.StringGenerator">
        <property name="allowSpaces" value="false"/>
        <property name="excludeChars" value=""/>
        <property name="maxLength" value="16"/>
        <property name="minLength" value="12"/>
        <property name="nulls" value="0"/>
      </generator>
    </column>
 <column name="realprice" databaseDefault="false">
      <generator type="pl.kernelpanic.dbmonster.generator.NumberGenerator">
        <property name="minValue" value="1"/>
        <property name="maxValue" value="50000000"/>
        <property name="returnedType" value="long"/>
        <property name="nulls" value="0"/>
      </generator>
    </column>
 <column name="starttime" databaseDefault="false">
      <generator type="pl.kernelpanic.dbmonster.generator.DateTimeGenerator">  <!-- 时间生成器-->
        <property name="startDate" value="2013-04-08"/>
        <property name="endDate" value="2014-12-31"/>
        <property name="returnedType" value="date"/>   <!-- 可选项date, time, timestamp,默认为date-->
        <property name="nulls" value="0"/>
      </generator>
    </column>
 <column name="pricezero" databaseDefault="false">
      <generator type="pl.kernelpanic.dbmonster.generator.NumberGenerator">
        <property name="minValue" value="1"/>
        <property name="maxValue" value="50000000"/>
        <property name="returnedType" value="double"/>
        <property name="nulls" value="0"/>
      </generator>
    </column>
  </table>
 </dbmonster-schema>
  配置完后,进入到bin目录下,运行
dbmonster.bat -c dbmonster.proprities -s dbmonster-schema.xml。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值