1

我正在使用 Maven 3.0.3、MySQL 5.5 和 Maven SQL 插件(v 1.5)为我的 JUnit 测试创建一个测试数据库......

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <version>1.5</version>
                    <dependencies>
                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>5.1.18</version>
                        </dependency>
                    </dependencies>
                    <!-- common configuration shared by all executions -->
                    <configuration>
                        <driver>com.mysql.jdbc.Driver</driver>
                        <url>jdbc:mysql://${test.mysql.db.host}:${test.mysql.db.port}/${test.mysql.db.sid}</url>
                        <username>${test.mysql.db.user}</username>
                        <password>${test.mysql.db.password}</password>
                        <!--all executions are ignored if -Dmaven.test.skip=true -->
                        <skip>${maven.test.skip}</skip>
                    </configuration>

                    <executions>
                        <execution>
                            <id>create-test-db</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>execute</goal>
                            </goals>
                            <configuration>
                                <url>jdbc:mysql://${test.mysql.db.host}:${test.mysql.db.port}</url>
                                <username>${test.mysql.db.user}</username>
                                <password>${test.mysql.db.password}</password>
                                <autocommit>true</autocommit>
                                <sqlCommand>create database if not exists ${test.mysql.db.sid}</sqlCommand>
                            </configuration>
                        </execution>
                    </executions>

如果无法建立连接(因为尚未创建用户或拥有错误的权限),我想显示一条比默认情况下打印出来的错误消息更友好的错误消息。有谁知道这是怎么做到的吗?我愿意使用除 Maven SQL 插件之外的其他插件。

谢谢, - 戴夫

4

1 回答 1

0

由于错误消息特定于每个数据库(您会在 Oracle 上收到与在 MySQL 上不同的错误消息),并且每个数据库以不同的方式处理这些错误,因此可能没有通用的方法。Spring 框架将数据库错误封装到丰富的异常层次结构中,您可能想看看它们如何以通用方式处理这些错误。

一种选择是扩展 Maven SQL 插件并在其中添加该功能。如果您可以跨数据库以通用方式执行此操作,那就更好了,但我想如果您可以使其仅适用于 MySQL,那已经对您有所帮助。

您想提供更友好的错误消息的任何具体原因?

于 2013-03-20T14:24:54.240 回答