maven有dbunit-maven-plugin,可以用来初始化数据库,但用maven-antrun-plugin插件与dbunit,也可完美实现数据库初始化的功能,今天记录maven-antrun-plugin的方式。
maven的profile部分声明
<profiles>
<!-- 初始化数据库 -->
<profile>
<id>init-db</id>
<dependencies>
<dependency>
<groupId>org.dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.4.8</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.2-FINAL</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<configuration>
<target>
<!-- mysql -->
<property name="dbunit.datatype" value="org.dbunit.ext.mysql.MySqlDataTypeFactory" />
<!-- mssql
<property name="dbunit.datatype" value="org.dbunit.ext.mssql.MsSqlDataTypeFactory" /> -->
<!-- oracle
<property name="dbunit.datatype" value="org.dbunit.ext.oracle.Oracle10DataTypeFactory" /> -->
<property file="src/main/resources/jeesite.properties" />
<sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}"
onerror="continue" encoding="${project.build.sourceEncoding}">
<classpath refid="maven.test.classpath" />
<transaction src="db/**/**_${jdbc.type}.sql"/>
<transaction src="db/**/**_${jdbc.type}.sql"/>
<transaction src="db/**/**_${jdbc.type}.sql"/>
<transaction src="db/**/**_${jdbc.type}.sql"/>
<transaction src="db/**/**_${jdbc.type}.sql"/>
</sql>
<taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpathref="maven.test.classpath" />
<!-- mysql、mssql -->
<dbunit driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}"
password="${jdbc.password}">
<!-- oracle
<dbunit driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}"
password="${jdbc.password}" schema="${jdbc.username}" > -->
<dbconfig>
<property name="datatypeFactory" value="${dbunit.datatype}" />
</dbconfig>
<classpath refid="maven.test.classpath" />
<operation type="INSERT" src="db/**/**.xls" format="xls" transaction="true"/>
<operation type="INSERT" src="db/**/**.xls" format="xls" transaction="true"/>
</dbunit>
</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
按模块将sql文件放入指定目录,调用 antrun:run -Pinit-db,表结构及数据一并执行,数据库初始化完成。
excel数据导入格式
按字段名,数据依次放入数据,可以从原始测试表中导出。多张表数据放置于不同的sheet中。