-
Notifications
You must be signed in to change notification settings - Fork 56
DasClient 集成说明
本文介绍了如何集成DAS客户端并开始使用。DAS提供了配置集成接口,并提供了缺省配置。
本文将介绍如何从零构建一个DAS应用。
根据你的应用业务需求在MySQL或者SQLServer数据库上建立库和表。
DAS单元测试所用的数据库schema文件分别参见:
在das-console中创建das项目,然后将步骤1构建的数据库信息配置到物理数据库和逻辑数据库。配置完成后,生成并下载das.xml
和datasource.xml
文件至本地。
🔗 详细步骤参见:DasConsole-创建项目。
在das-console中,为每个数据表或查询生成一个java文件。
🔗 详细步骤参见:DasConsole-生成代码。
创建java工程,在你的pom.xml
中加入das依赖:
<dependency>
<groupId>com.ppdai.das</groupId>
<artifactId>das-client</artifactId>
<version>2.2.3</version>
</dependency>
DAS依赖一些第三方库。如果用户缺乏相关依赖,可能会导致无法编译或运行。例如MS Sqlserver的依赖很多公司可能就没有。用户可以自行搜索并安装到本地或公司的nexus repo。为了方便大家使用,我们对用到的部分容易缺失的依赖提供备份:
下载以下3个驱动包:
将这3个文件拷贝到本地D:\目录下,分别将这3个驱动文件install到本地repo的命令如下:
mvn install:install-file -DgroupId=com.microsoft.sqlserver -DartifactId=mssql-jdbc -Dversion=6.2.2.jre7.ctrip -Dpackaging=jar -Dfile=d:\mssql-jdbc-6.2.2.jre7.ctrip.jar
mvn install:install-file -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=6.2.2.jre7.ctrip -Dpackaging=jar -Dfile=d:\mysql-connector-java-5.1.38.jar
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4 -Dpackaging=jar -Dfile=d:\ojdbc6-11.2.0.4.jar
如果有发现javax.persistence:persistence-api
无法从maven仓库得到,请同样方式从这里下载到本地install:
mvn install:install-file -DgroupId=javax.persistence -DartifactId=persistence-api -Dversion=1.0.2 -Dpackaging=jar -Dfile=d:\persistence-api-1.0.2.jar
将步骤2生成的das.xml
和datasource.xml
文件拷贝到工程的resources
目录。
然后将步骤3生成的实体类的java代码拷贝入你的java工程。
我们现在可以利用DAS提供的API开始编写代码。
🔗 API使用请参见:DAS Client使用说明。
ClientConfigureLoader接口定义了客户端总体配置。
String getAppId();
/**
* @return User's customized Das Client version. For logging purpose
*/
String getCustomerDasClientVersion();
boolean isProxyEnabled() throws Exception;
/**
* @return DasConfigure for default appID
* @throws Exception
*/
DasConfigure load() throws Exception;
/**
* @return DasLogger
* @throws Exception
*/
DasLogger getDasLogger() throws Exception;
/**
* @return all available das server instances
*/
List<DasServerInstance> getServerInstances() throws Exception;
DasConfig主要的功能是提供DAS所需逻辑数据库配置和各种帮助类, 含义如下:
方法 | 含义 | 缺省实现 |
---|---|---|
DasLogger | DAS内部调用的日志接口 | DefaultLogger |
ConnectionLocator | 获取Connection的工厂类 | DefaultConnectionLocator |
TaskFactory | JDBC层数据库操作实现的工厂类 | DefaultTaskFactory |
DatabaseSelector | 数据库选择器 | DefaultDatabaseSelector |
DAS Client启动时如果没找到用户自定义的实现,则会缺省的使用DefaultClientConfigLoader实现。
DefaultClientConfigLoader会读取项目的resources/das.xml文件和datasources.xml文件来获取逻辑数据库配置和物理数据库配置
示例:das.xml
具体内容可以参考
如果用户希望自定义客户端配置,需要实现ClientConfigureLoader接口,并将类名放到项目的下列对应文件中:
resources\META-INF\services\com.ppdai.das.core.ClientConfigureLoader
自定义实现的难点在如何创建ConnectionLocator,可以参考下列的代码,用户仅需要提供自定义的DataSourceConfigureProvider即可。
参考实现:
private ConnectionLocator getConnectionLocator() throws Exception {
ConnectionLocator locator = new DefaultDalConnectionLocator();
Map<String, String> settings = new HashMap<>();
settings.put(DefaultDalConnectionLocator.DATASOURCE_CONFIG_PROVIDER,
PPDaiDataSourceConfigureProvider.class.getName());
locator.initialize(settings);
return locator;
}