自定义数据连接

教学视频

说明

Bask Report 基于 java.util.ServiceLoader 机制支持自定义的数数据源,对应的接口:

public interface BuildinDatasourceProvider {
    /**
     * 根据DatasourceDefinition的定义生成java.sql.DataSource对象
     * @param def
     * @return
     */
    DataSource buildDatasource(DatasourceDefinition def);
}

全路径为:com.basksoft.core.model.datasource.BuildinDatasourceProvider

前期准备-ServiceLoader 定义

分下面几个步骤来使用:

  1. 在 resources 资源目录下创建 META-INF/services 文件夹
  2. 在 services 文件夹中创建文件,以接口全名命名,就是:com.basksoft.core.model.datasource.BuildinDatasourceProvider
  3. 创建接口实现类,参考代码

     import com.basksoft.core.definition.datasource.DatasourceDefinition;
     import com.basksoft.core.model.datasource.BuildinDatasourceProvider;
     import org.apache.commons.dbcp2.BasicDataSource;
     import org.apache.commons.dbcp2.BasicDataSourceFactory;
    
     import javax.sql.DataSource;
     import java.sql.SQLException;
     import java.util.Properties;
    
     public class TestBuildinDatasource implements BuildinDatasourceProvider {
         private DataSource dataSource=null;
         @Override
         public DataSource buildDatasource(DatasourceDefinition def) {
            if(dataSource!=null){
            return dataSource;
         }
             // 加载DBCP配置文件
             Properties properties = new Properties();
             properties.put("username", "root");
             properties.put("password", "xxxxx");
             properties.put("driverClassName", "com.mysql.jdbc.Driver");
             properties
                     .put("url",
                             "jdbc:mysql://localhost:3306/baskreportsample?useUnicode=true&characterEncoding=UTF-8");
             try {
                 dataSource = BasicDataSourceFactory.createDataSource(properties);
             } catch (Exception e) {
                 e.printStackTrace();
             }
             return dataSource;
         }
     }
    
  4. 修改 META-INF/services 下的 com.basksoft.core.model.datasource.BuildinDatasourceProvider 文件

xxx.xxx.xxx.TestBuildinDatasource

设计器使用

在报表设计器的右侧找到数据源定义的设计面板:

image-20210412092228435

首先选择数据源标签,并单击+快捷按钮为报表文件添加 JNDI 数据源。

image-20210412092413738

image-20210412143903307

可以单击测试连接的按钮测试配置:

image-20210412144038673

如果一切正确,则会出现如下弹出提示框:

image-20210412100051973

这就表示数据库连接配置成功。

results matching ""

    No results matching ""