package api;
import com.fr.base.Parameter;
import com.fr.base.StoreProcedureParameter;
import com.fr.data.impl.ClassTableData;
import com.fr.data.impl.ConditionTableData;
import com.fr.data.impl.DBTableData;
import com.fr.data.impl.EmbeddedTableData;
import com.fr.data.impl.ExcelTableData;
import com.fr.data.impl.JDBCDatabaseConnection;
import com.fr.data.impl.NameDatabaseConnection;
import com.fr.data.impl.RecursionTableData;
import com.fr.data.impl.TextTableData;
import com.fr.data.impl.XMLTableData;
import com.fr.data.impl.storeproc.StoreProcedure;
import com.fr.data.impl.storeproc.StoreProcedureConstants;
import com.fr.data.pool.DBCPConnectionPoolAttr;
import com.fr.file.ConnectionConfig;
import com.fr.file.TableDataConfig;
import com.fr.io.TemplateWorkBookIO;
import com.fr.main.impl.WorkBook;
import com.fr.report.worksheet.WorkSheet;
import com.fr.stable.EncodeConstants;
import java.util.Arrays;
/**
* 数据源
*
* @author Administrator
*
*/
public class DataConfig {
public static void main(String[] args) {
try {
ServerConnector.remote();
WorkBook workbook = new WorkBook();
workbook.addReport("sheet", new WorkSheet());
templateDataSource(workbook);
TemplateWorkBookIO.writeTemplateWorkBook(workbook, "数据源.cpt");
} catch (Exception ex) {
ex.printStackTrace();
}
ServerConnector.disconnect();
}
/**
* 模板数据集
*/
public static void templateDataSource(WorkBook workbook) {
// 数据库查询
DBTableData db = new DBTableData(new NameDatabaseConnection("FRDemo"), "select * from department");
// 定义分页查询
db.setPageQuerySql("");
// 共享数据集
db.setShare(false);
// 所有记录都保存在内存中
db.setMaxMemRowCount(-1);
// 缓存到磁盘
db.setMaxMemRowCount(10);
// 参数
db.setParameters(new Parameter[] { new Parameter("area", "华东") });
workbook.putTableData("数据库查询", db);
// 程序数据集
ClassTableData c = new ClassTableData("MyTableData");
c.setParameters(new Parameter[] { new Parameter("p1", new Integer(123)) });
workbook.putTableData("程序数据集", c);
// 内置数据集
EmbeddedTableData e = new EmbeddedTableData();
e.addColumn("col1", String.class);
e.addColumn("col2", Integer.class);
e.addRow(Arrays.asList(new Object[] { "abc", 123 }));
e.addRow(Arrays.asList(new Object[] { "#*%", 456 }));
e.addRow(Arrays.asList(new Object[] { "xyz", 789 }));
workbook.putTableData("内置数据集", e);
// 文件数据集 - txt
TextTableData txt = new TextTableData();
// 文件路径
// txt.setFilePath("reportlets/file_data.txt"); //
// http://localhost:8075/webroot/file_data.xlsx
txt.setFilePath("http://localhost:8075/webroot/file_data.txt");
// 编码
txt.setCharset(EncodeConstants.ENCODING_UTF_8);
// 包含列标题
txt.setNeedColumnName(true);
// 分隔符
txt.setDelimiter(",");
// 连续分隔符视为单个处理
txt.setIgnoreOneMoreDelimiter(false);
txt.setParams(new Parameter[] { new Parameter("p1", 123) });
workbook.putTableData("文件数据集-txt", txt);
// 文件数据集 - excel
ExcelTableData excel = new ExcelTableData();
// 文件路径
excel.setFilePath("reportlets/file_data.xlsx");
// 包含列标题
excel.setNeedColumnName(true);
excel.setParams(new Parameter[] { new Parameter("p1", 123) });
workbook.putTableData("文件数据集-excel", excel);
// 文件数据集 - xml
XMLTableData xml = new XMLTableData();
// 文件路径
xml.setFilePath("reportlets/file_data.xml");
// 编码
xml.setCharSet(EncodeConstants.ENCODING_UTF_8);
xml.setParams(new Parameter[] { new Parameter("p1", 123) });
workbook.putTableData("文件数据集-xml", xml);
// 存储过程数据集
StoreProcedure store = new StoreProcedure();
// 数据连接
store.setDatabaseConnection(new NameDatabaseConnection("FRDemo"));
// 共享数据集
store.setShare(false);
// 所有记录都保存在内存中
store.setMaxMemRowCount(100);
// SQL
store.setQuery("select 1");
// 存储过程
store.setParameters(new StoreProcedureParameter[] {
new StoreProcedureParameter("in", 123, StoreProcedureConstants.IN, StoreProcedureConstants.INTEGER),
new StoreProcedureParameter("out", StoreProcedureConstants.OUT, StoreProcedureConstants.CURSOR),
new StoreProcedureParameter("inout", "abc", StoreProcedureConstants.INOUT,
StoreProcedureConstants.VARCHAR) });
workbook.putTableData("存储过程数据集", store);
// 关联数据集
ConditionTableData cond = new ConditionTableData();
cond.addTableData("数据库查询", "true");
cond.addTableData("程序数据集");
workbook.putTableData("关联数据集", cond);
// 树数据集
RecursionTableData tree = new RecursionTableData();
// 选择数据集
tree.setOriginalTableDataName("数据库查询");
// 原始标记字段
tree.setMarkFields("2");
tree.setMarkFieldName("did");
// 父标记字段
tree.setParentmarkFieldName("fid");
tree.setParentmarkFields("3");
workbook.putTableData("树数据集", tree);
}
/**
* 服务器数据管理
*/
public static void ServerDataSource() {
// 服务器数据连接管理
ConnectionConfig connConfig = ConnectionConfig.getInstance();
// JDBC
JDBCDatabaseConnection conn = new JDBCDatabaseConnection("com.mysql.jdbc.Driver",
"jdbc:mysql://localhost:3306/databaseName", "user", "password");
// 连接池属性
DBCPConnectionPoolAttr attr = new DBCPConnectionPoolAttr();
conn.setDbcpAttr(attr);
connConfig.addConnection("test", conn);
// JDNI
// JNDIDatabaseConnection conn = new JNDIDatabaseConnection();
// 服务器数据集管理
TableDataConfig dataConfig = TableDataConfig.getInstance();
dataConfig.addTableData("test", new DBTableData(new NameDatabaseConnection("test"), "select 1"));
}
}
数据源操作
最新推荐文章于 2021-06-30 09:26:44 发布