maven执行SQL语句
前言
之所以要用maven来执行sql语句或者文件,是因为在日常开发或者测试过程中保证每次构建完之后是一个“干净”的项目呈现在面前。
怎么用
使用maven执行sql语句需要依赖sql-maven-plugin这个插件,下面就直接从项目pom文件的配置入手进行简要介绍:
<build>
<finalName>buglife-data-access</finalName>
<plugins>
<!--添加sql-maven-plugin插件-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<!---因为该实例中用到的数据库是mysql,故需依赖于mysql连接驱动-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.27</version>
</dependency>
</dependencies>
<!--为该插件配置数据库连接信息-->
<configuration>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306</url>
<username>root</username>
<password>root</password>
</configuration>
<executions>
<!--创建数据库-->
<execution>
<id>create-db</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<!--设置自动提交事务-->
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/main/resources/create_db.sql</srcFile>
</srcFiles>
</configuration>
</execution>
<!--创建数据表-->
<execution>
<id>create-table</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/main/resources/create_table.sql</srcFile>
</srcFiles>
</configuration>
</execution>
<!--插入数据-->
<execution>
<id>insert-data</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<orderFile>ascending</orderFile>
<fileset>
<basedir>${basedir}</basedir>
<includes>
<include>src/main/resources/init_data.sql</include>
</includes>
</fileset>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
以上pom文件中皆是执行的sql文件而没选择执行sql命令,原因是为了改SQL语句的时候可以集中在一块修改,而不去轻易的修改项目文件(POM).若要执行sql命令则可以使用类似于下面的语句替代
<sqlCommand>create database `webutil`;</sqlCommand>
当然另一点需要注意的是
还没有评论,来说两句吧...