简介 #
DBPlusEngine-Driver 提供了 JDBC 驱动的 all-in-one 版本,在方便用户部署的同时,能够尽量减少潜在的依赖冲突。
部署方式 #
方式一:Maven 依赖 #
选择 system 路径依赖 或 标准坐标依赖 其中一种即可。
system 路径依赖 #
适用于本地开发调试,${dbplusengine.version} 以具体交付版本为准
<dependency>
<groupId>com.sphere-ex</groupId>
<artifactId>dbplusengine-driver-all-in-one</artifactId>
<version>${dbplusengine.version}</version>
<scope>system</scope>
<!-- suppress UnresolvedMavenProperty -->
<systemPath>${maven.multiModuleProjectDirectory}/lib/sphereex-dbplusengine-driver-all-in-one-${dbplusengine.version}.jar</systemPath>
</dependency>
标准坐标依赖 #
此种方式需要先将 jar 和 pom 安装到本地仓库,或部署到能够访问的 Nexus 私服中。
- 安装到本地仓库
mvn install:install-file \
-DgroupId=com.sphere-ex \
-DartifactId=dbplusengine-driver-all-in-one \
-Dversion=${dbplusengine.version} \
-Dpackaging=jar \
-Dfile=${file.path} \
-DpomFile=${pom.path}
- 或直接部署到 Nexus 私服
mvn -s ~/.m2/release-settings.xml deploy:deploy-file \
-DgroupId=com.sphere-ex \
-DartifactId=dbplusengine-driver-all-in-one \
-Dversion=${dbplusengine.version} \
-Dpackaging=jar \
-Dfile=${file.path} \
-DpomFile=${pom.path} \
-Durl=https://{repository.url}/ \
-DrepositoryId={repository.id}
- 添加项目依赖
<dependency>
<groupId>com.sphere-ex</groupId>
<artifactId>dbplusengine-driver-all-in-one</artifactId>
<version>${dbplusengine.version}</version>
</dependency>
方式二:导入项目 library #
直接将 jar 包放入项目路径,并添加到依赖库中。如 IDEA 中选择 Add as Library。 适用于不使用 Maven 或 Gradle 等依赖管理工具的项目。

方式三:应用外置 classpath #
适用于已打包的 SpringBoot 项目,或打包 SpringBoot 项目时未包含 system scope 的场景。 也适用于其他可以通过 -cp 指定 classpath 的场景。
- 将 driver-all-in-one 依赖和应用 jar 包放入合适的目录下,例如:

- 启动脚本
在项目启动脚本中,通过 -cp 指定所有依赖路径(linux 中使用 : 分隔,windows 中使用 ; 分隔),例如:
java -Xmx2g -Xms1g -Xmn1g -cp .:lib/* org.springframework.boot.loader.PropertiesLauncher
方式四:放入 jre/ext-lib #
适用于无法改造的历史项目,将 driver-all-in-one 和数据库驱动、连接池等依赖包放入 jre/ext-lib 目录下。
注意事项 #
附加依赖 #
以下依赖项不包含在 Driver all-in-one 中,需要用户应用自行依赖。
- 数据库 JDBC 驱动(如 mysql-connector-j-8.0.33.jar)
- Hikari 连接池 (如 HikariCP-4.0.3.jar)
- Slf4j 日志门面 (如 slf4j-api-1.7.36.jar)
数据加密 #
若用户应用需要配置 Encrypt Rule 的,请额外添加依赖项。以下为示例,具体的 bcprov 版本号请在获取 DBPlusEngine 时咨询。
<properties>
<bouncycastle.version>1.70</bouncycastle.version>
</properties>
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
</dependencies>
使用驱动 #
使用原生驱动 #
Class.forName("com.sphereex.dbplusengine.driver.SphereExDriver");
String jdbcUrl = "jdbc:sphereex:classpath:config.yaml";
String sql = "SELECT i.* FROM t_order o JOIN t_order_item i ON o.order_id=i.order_id WHERE o.user_id=? AND o.order_id=?";
try (
Connection conn = DriverManager.getConnection(jdbcUrl);
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, 10);
ps.setInt(2, 1000);
try (ResultSet rs = preparedStatement.executeQuery()) {
while(rs.next()) {
// ...
}
}
}
使用数据库连接池 #
String driverClassName = "com.sphereex.dbplusengine.driver.SphereExDriver";
String jdbcUrl = "jdbc:sphereex:classpath:config.yaml";
// 以 HikariCP 为例
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setJdbcUrl(jdbcUrl);
String sql = "SELECT i.* FROM t_order o JOIN t_order_item i ON o.order_id=i.order_id WHERE o.user_id=? AND o.order_id=?";
try (
Connection conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, 10);
ps.setInt(2, 1000);
try (ResultSet rs = preparedStatement.executeQuery()) {
while(rs.next()) {
// ...
}
}
}
配置说明 #
驱动类名称 #
com.sphereex.dbplusengine.driver.SphereExDriver
URL 配置说明 #
- 以
jdbc:sphereex:为前缀 - 配置文件:
xxx.yaml,配置文件格式与 YAML 配置一致 - 配置文件加载规则:
absolutepath:前缀表示从绝对路径加载配置文件classpath:前缀表示从类路径中加载配置文件