【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

一、特殊名词介绍

二、接口/方法/对象源码——【FineReport V10 2018-07-30】

Connection.java
package com.fr.data.impl;

import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.stable.UrlDriver;
import com.fr.stable.xml.XMLable;

import java.sql.Array;
import java.sql.Blob;
import java.sql.CallableStatement;
import java.sql.Clob;
import java.sql.DatabaseMetaData;
import java.sql.NClob;
import java.sql.PreparedStatement;
import java.sql.SQLClientInfoException;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.SQLXML;
import java.sql.Savepoint;
import java.sql.Statement;
import java.sql.Struct;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.Executor;

/**
 * 数据连接接口
 */
public interface Connection extends UrlDriver, XMLable {
    
    long serialVersionUID = 7499789136617115596L;
    
    String XML_MAP_TAG = "ConnectionMap";
    String XML_TAG = "Connection";

    /**
     * Gets the original charset name.<br>
     * The default value is null, do not convert the object of ResultSet.
     */
    String getOriginalCharsetName();

    /**
     * Sets the original charset name.<br>
     * The default value is null, do not convert the object of ResultSet.
     */
    void setOriginalCharsetName(String originalCharsetName);

    /**
     * Gets the new charset name.<br>
     * The default value is null, using the default charset to convert the object of ResultSet.
     */
    String getNewCharsetName();

    /**
     * Sets the new charset name.<br>
     * The default value is null, using the default charset to convert the object of ResultSet.
     */
    void setNewCharsetName(String newCharsetName);

    /**
     * 测试连接
     *
     * @throws Exception 异常
     */
    void testConnection() throws Exception;

    /**
     * 创建连接
     *
     * @return 返回连接
     * @throws Exception 异常
     */
    java.sql.Connection createConnection() throws Exception;

    /**
     * 连接成功或失败时给出的信息
     *
     * @return 信息
     */
    String connectMessage(boolean status);

    /**
     * 将连接名添加到列表中
     *
     * @param list           列表
     * @param connectionName 连接名
     * @param acceptTypes    满足的条件
     */
    void addConnection(List<String> list, String connectionName, Class<? extends com.fr.data.impl.Connection>[] acceptTypes);


    /**
     * 判断当前连接是否为同一个数据库的依据.
     * 用于检测lic中限制的数据连接数, 同一个url的数据库允许建立多个连接.
     *
     * @return 数据连接属于同一个数据库的依据
     */
    String feature();

    /**
     * 获取数据连接的摘要信息
     * @return 摘要
     */
    String[] summary(String... args);

    JSONObject toJSONObject() throws JSONException;

    boolean hasSchema();

    boolean equals(Object ob);

    /**
     * 创建者信息
     * @param creator 创建者
     */
    void setCreator(String creator);

    String getCreator();
}

三、接口/方法/对象说明

该接口为衍生接口,本意是用于处理JDBC的数据源连接的。但随着产品的迭代衍进和接口的完善,目前这个接口可以用来指定任何抽象层面的“数据源连接”。

接口定义的方法非常多,但对于一个自定义的非JDBC数据源(JDBC数据源可直接参考JDBCDatabaseConnection)来说,并不是所有的方法都必须实现。这里我们列出几个常用的方法。

testConnection : 测试连接是否正常

connectMessage : 连接成功或失败时给出的信息

addConnection:将连接名添加到列表中

feature:判断当前连接是否为同一个数据库的依据(主要用于lic校验,如果不想限制的,可以不单独实现这个方法)

readXML/writeXML/clone:一般xml对象的三个固定实现的方法,用于配置的存取和设计器上复制连接

注:一般我们通过finekit继承BaseConnection实现即可

四、常用链接

ConnectionProvider

UniversalConnectionProvider

五、开源案例

免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。

demo-tabledata-redis


  • No labels