我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java怎么连接程序数据源

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java怎么连接程序数据源

这篇文章主要介绍“Java怎么连接程序数据源”,在日常操作中,相信很多人在Java怎么连接程序数据源问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么连接程序数据源”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在实际应用中,可能需要根据表名动态地改变数据源,比如在程序数据集中,通过传进的表名参数,到数据库取出对应的表作为数据源。例如,FineReport是通过AbstractTableData抽象类来读取数据源的,而上述所有的数据来源都继承实现其抽象方法,因此用户只要实现了AbstractTableData抽象类,也就可以用自定义类型的数据源了(程序数据集),这是带参程序数据集连接的方法。

FineReport报表引擎就能够读取定义的数据源作为报表数据源使用,原理就是继承AbstractTableData。

1、定义参数

定义一个参数,并定义数据表结构,代码如下:

public ParamTableDataDemo() {  
        // 定义tableName参数  
        this.parameters = new Parameter[] { new Parameter("tableName") };  
        // 定义程序数据集列名  
        columnNames = new String[columnNum];  
        for (int i = 0; i < columnNum; i++) {  
            columnNames[i] = "column#" + String.valueOf(i);  
        }  
}

2、设置数据

将数据放入到定义的表中,代码如下:

public void init() {
		// 确保只被执行一次
		if (valueList != null) {
			return;
		}
		// 保存得到的数据库表名
		String tableName = parameters[0].getValue().toString();
		// 构造SQL语句,并打印出来
		String sql = "select * from " + tableName + ";";
		FRContext.getLogger().info("Query SQL of ParamTableDataDemo: \n" + sql);
		// 保存得到的结果集
		valueList = new ArrayList();
		// 下面开始建立数据库连接,按照刚才的SQL语句进行查询
		Connection conn = this.getConnection();
		try {
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery(sql);
			// 获得记录的详细信息,然后获得总列数
			ResultSetMetaData rsmd = rs.getMetaData();
			colNum = rsmd.getColumnCount();
			// 用对象保存数据
			Object[] objArray = null;
			while (rs.next()) {
				objArray = new Object[colNum];
				for (int i = 0; i < colNum; i++) {
					objArray[i] = rs.getObject(i + 1);
				}
				// 在valueList中加入这一行数据
				valueList.add(objArray);
			}
			// 释放数据库资源
			rs.close();
			stmt.close();
			conn.close();
			// 打印一共取到的数据行数量
			FRContext.getLogger().info(
					"Query SQL of ParamTableDataDemo: \n" + valueList.size()
							+ " rows selected");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

3、完整的数据集代码

整的带参程序数据集的代码如下

package com.fr.data;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;

import com.fr.base.Env;
import com.fr.base.FRContext;
import com.fr.data.AbstractTableData;
import com.fr.base.Parameter;

public class ParamTableDataDemo extends AbstractTableData {
	// 列名数组,保存程序数据集所有列名
	private String[] columnNames = null;
	// 定义程序数据集的列数量
	private int columnNum = 10;
	// 保存查询表的实际列数量
	private int colNum = 0;
	// 保存查询得到列值
	private ArrayList valueList = null;

	// 构造函数,定义表结构,该表有10个数据列,列名为column#0,column#1,。。。。。。column#9
	public ParamTableDataDemo() {
		// 定义tableName参数
		setDefaultParameters(new Parameter[] { new Parameter("tableName") });
		// 定义程序数据集列名
		columnNames = new String[columnNum];
		for (int i = 0; i < columnNum; i++) {
			columnNames[i] = "column#" + String.valueOf(i);
		}
	}

	// 实现其他四个方法
	public int getColumnCount() {
		return columnNum;
	}

	public String getColumnName(int columnIndex) {
		return columnNames[columnIndex];
	}

	public int getRowCount() {
		init();
		return valueList.size();
	}

	public Object getValueAt(int rowIndex, int columnIndex) {
		init();
		if (columnIndex >= colNum) {
			return null;
		}
		return ((Object[]) valueList.get(rowIndex))[columnIndex];
	}

	// 准备数据
	public void init() {
		// 确保只被执行一次
		if (valueList != null) {
			return;
		}
		// 保存得到的数据库表名
		String tableName = parameters[0].getValue().toString();
		// 构造SQL语句,并打印出来
		String sql = "select * from " + tableName + ";";
		FRContext.getLogger().info("Query SQL of ParamTableDataDemo: \n" + sql);
		// 保存得到的结果集
		valueList = new ArrayList();
		// 下面开始建立数据库连接,按照刚才的SQL语句进行查询
		Connection conn = this.getConnection();
		try {
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery(sql);
			// 获得记录的详细信息,然后获得总列数
			ResultSetMetaData rsmd = rs.getMetaData();
			colNum = rsmd.getColumnCount();
			// 用对象保存数据
			Object[] objArray = null;
			while (rs.next()) {
				objArray = new Object[colNum];
				for (int i = 0; i < colNum; i++) {
					objArray[i] = rs.getObject(i + 1);
				}
				// 在valueList中加入这一行数据
				valueList.add(objArray);
			}
			// 释放数据库资源
			rs.close();
			stmt.close();
			conn.close();
			// 打印一共取到的数据行数量
			FRContext.getLogger().info(
					"Query SQL of ParamTableDataDemo: \n" + valueList.size()
							+ " rows selected");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 获取数据库连接 driverName和 url 可以换成您需要的
	public Connection getConnection() {
		
		String driverName = "org.sqlite.JDBC";
		String url = "jdbc:sqlite://D:\\FineReport_8.0\\WebReport\\FRDemo.db";
		String username = "";
		String password = "";
		Connection con = null;
		try {
			Class.forName(driverName);
			con = DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		return con;
	}

	// 释放一些资源,因为可能会有重复调用,所以需释放valueList,将上次查询的结果释放掉
	public void release() throws Exception {
		super.release();
		this.valueList = null;
	}
}

编译ParamTableDataDemo.java ,将生成的ParamTableDataDemo.class类文件拷贝到报表工程/WEB-INF/classes目录下。由于该类是在com.fr.data包中的,因此最终应该将该类放在/WEB-INF/classes/com/fr/data下面。此时该程序数据源便定义好了。

4、配置程序数据集

新建报表,在报表数据集中新建程序数据源,选择我们定义好的程序数据集,如下图,名字可以自定义,如divtable

Java怎么连接程序数据源

5、使用程序数据集

配置好程序数据源后便可以使用定义的程序数据集了,选中该数据集点击预览

按钮,即可以输入表名动态地获取相应的数据表,并制作模板,如下图

Java怎么连接程序数据源

Java怎么连接程序数据源

如果预览不出数据,请确认代码段里面定义数据库连接时URL的地址是否正确。

可以看到,STSCORE表中的数据已经提取至程序数据集表中,像其他类型的数据集一样,可以通过拖拽方法实现单元格数据列绑定。

到此,关于“Java怎么连接程序数据源”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java怎么连接程序数据源

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ADO.NET中怎么连接数据源

这篇文章将为大家详细讲解有关ADO.NET中怎么连接数据源,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对于 ODBC .NET Framework 数据提供程序,连接字符串的格式设计为尽可
2023-06-17

java如何连接odbc数据源

要连接ODBC数据源,可以使用Java的JDBC API,并使用ODBC驱动程序。以下是连接ODBC数据源的步骤:1. 下载和安装ODBC驱动程序,例如,针对MySQL数据库可以使用Connector/J驱动程序。2. 在Java项目中引入
2023-09-11

Java怎么连接数据库

本篇内容主要讲解“Java怎么连接数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么连接数据库”吧!前言Java连接MySQL数据库的方法:首先下载解压得到jar库文件,并在对应的
2023-07-06

Java怎样创建以JDBC连接数据库的程序

今天就跟大家聊聊有关Java怎样创建以JDBC连接数据库的程序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JDBC连接数据库 ◆ 创建一个以JDBC连接数据库的程序,包含7个
2023-06-17

微信小程序怎么连接MySQL数据库

这篇“微信小程序怎么连接MySQL数据库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么连接MySQL数据库”文
2023-06-28

mysql怎么远程连接数据库 mysql怎么连接远程数据库

远程连接 mysql 数据库分五步:1. 获取主机信息;2. 配置远程访问;3. 重启 mysql 服务;4. 设置远程用户;5. 从本地连接到远程数据库。如何远程连接 MySQL 数据库步骤 1:获取主机信息登录到 MySQL 数据库的
mysql怎么远程连接数据库 mysql怎么连接远程数据库
2024-08-13

java数据库连接资源释放问题怎么解决

在Java中,数据库连接资源释放问题可以通过以下几种方式解决:1. 使用try-with-resources语句块:在Java 7及以上版本中,可以使用try-with-resources语句块来自动释放资源。在try-with-resou
2023-10-27

java怎么连接sqlserver数据库

Java连接SQLServer数据库本指南提供逐步说明,介绍如何使用JDBC建立Java应用程序与SQLServer数据库之间的连接。先决条件包括JDBC驱动程序、Java开发环境和SQLServer数据库。步骤包括:添加JDBC驱动程序、加载驱动程序、建立连接、创建Statement对象、执行查询、遍历结果集、更新数据库和关闭资源。其他注意事项涵盖连接池、事务、安全连接和调试。示例代码展示了如何连接到SQLServer数据库并执行查询。
java怎么连接sqlserver数据库
2024-04-11

java怎么连接mongodb数据库

连接MongoDB数据库的Java代码:MongoClientmongoClient=MongoClients.create(connectionString);MongoDatabasedatabase=mongoClient.getDatabase("myDatabase");连接参数包括:connectionString:MongoDB连接字符串MongoClient:与MongoDB数据库交互的客户机对象MongoDatabase:特定MongoDB数据库的交互对象连接步骤:导入Java库创建Mo
java怎么连接mongodb数据库
2024-04-09

java怎么连接redis数据库

本篇教程介绍了Java应用程序与Redis数据库连接的详细步骤。它涵盖了引入Redis客户端库、创建Redis连接、执行Redis命令、管理连接池和注意事项。通过遵循这些步骤,开发人员可以轻松地建立应用程序与Redis数据库之间的连接并执行各种Redis操作。
java怎么连接redis数据库
2024-04-02

java怎么连接mongodb数据库

在Java中连接MongoDB数据库,通常使用MongoDB的官方Java驱动程序,即MongoDB Java Driver。以下是连接MongoDB数据库的步骤:1、首先,下载MongoDB Java Driver。可以在MongoDB
java怎么连接mongodb数据库
2024-04-09

Java怎么连接MySQL数据库

今天小编给大家分享一下Java怎么连接MySQL数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先说明,由于是8版本的
2023-06-29

Tomcat的数据源连接池怎么配置

在Tomcat中配置数据源连接池需要在context.xml文件中进行配置。以下是配置步骤:1、打开Tomcat安装目录下的conf文件夹,找到context.xml文件。2、在context.xml文件中添加数据源配置,示例配置如下:
Tomcat的数据源连接池怎么配置
2024-03-07

java中jdbc怎么连接数据库

在Java中使用JDBC连接数据库的步骤如下:1. 下载并安装数据库驱动程序:首先需要从数据库官方网站下载相应的JDBC驱动程序,并将其添加到项目的classpath中。2. 加载数据库驱动程序:使用`Class.forName()`方法加
2023-09-15

java中怎么连接oracle数据库

使用JDBC连接Oracle数据库的步骤:添加OracleJDBC驱动程序并加载驱动程序。使用DriverManager建立数据库连接。使用Statement或PreparedStatement对象执行SQL语句。使用ResultSet对象处理查询结果。关闭连接以释放资源。高级特性包括连接池、事务、游标和调用存储过程/函数。示例代码演示如何连接到数据库、执行查询并处理结果集。
java中怎么连接oracle数据库
2024-04-12

编程热搜

目录