⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datasourcexyseries.java

📁 cewolf是个一个自动报表程序
💻 JAVA
字号:
package de.laures.cewolf.dp;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Map;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.jfree.data.xy.XYSeries;

import de.laures.cewolf.DatasetProduceException;

/**
 * @author glaures
 *
 * To change this generated comment edit the template variable "typecomment":
 * Window>Preferences>Java>Templates.
 * To enable and disable the creation of type comments go to
 * Window>Preferences>Java>Code Generation.
 */
public class DataSourceXYSeries implements Serializable {

	private String dataSourceName;
	private String query;
	private String xCol = "x";
	private String yCol = "y";
	private String seriesName = "name";
	
	/**
	 * Constructor for DataSourceXYSeries.
	 */
	public DataSourceXYSeries(String dataSourceName, String query) {
		this.dataSourceName = dataSourceName;
		this.query = query;
	}

	protected DataSource getDataSource() throws NamingException {
		Context initCtx = new InitialContext();
		Context envCtx = (Context) initCtx.lookup("java:comp/env");
		return (DataSource) envCtx.lookup(dataSourceName);
	}

	/**
	 * @see de.laures.cewolf.DatasetProducer#produceDataset(Map)
	 */
	public XYSeries produceXYSeries() throws DatasetProduceException {
		XYSeries series = new XYSeries(seriesName);
		try {
			DataSource ds = getDataSource();
			Connection con = ds.getConnection();
			ResultSet rs = con.createStatement().executeQuery(query);
			int xColIndex = rs.findColumn(xCol);
			int yColIndex = rs.findColumn(yCol);
			while(rs.next()){
				series.add((Number)rs.getObject(xColIndex), (Number)rs.getObject(yColIndex));
			}
		} catch (Exception namingEx) {
			namingEx.printStackTrace();
			throw new DatasetProduceException(namingEx.getMessage());
		}
		return series;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -