📄 jdbcxydataset.java
字号:
isTimeSeries = true;
break;
default :
isTimeSeries = false;
break;
}
// Get all rows.
rows = new Vector();
while (resultSet.next()) {
Vector newRow = new Vector();
for (column = 0; column < numberOfColumns; column++) {
xObject = resultSet.getObject(column + 1);
switch (columnTypes[column]) {
case Types.NUMERIC:
case Types.REAL:
case Types.INTEGER:
case Types.DOUBLE:
case Types.FLOAT:
case Types.DECIMAL:
case Types.BIGINT:
newRow.addElement(xObject);
break;
case Types.DATE:
case Types.TIME:
case Types.TIMESTAMP:
newRow.addElement(new Long(((java.util.Date) xObject).getTime()));
break;
case Types.NULL:
break;
default:
System.err.println("Unknown data");
columnTypes[column] = Types.NULL;
break;
}
}
rows.addElement(newRow);
}
/// a kludge to make everything work when no rows returned
if (rows.size() == 0) {
Vector newRow = new Vector();
for (column = 0; column < numberOfColumns; column++) {
if (columnTypes[column] != Types.NULL) {
newRow.addElement(new Integer(0));
}
}
rows.addElement(newRow);
}
/// Determine max and min values.
if (rows.size() < 1) {
maxValue = 0.0;
minValue = 0.0;
}
else {
Vector row = (Vector) rows.elementAt(0);
double test;
maxValue = ((Number) row.get(1)).doubleValue();
minValue = maxValue;
for (int rowNum = 0; rowNum < rows.size(); ++rowNum) {
row = (Vector) rows.elementAt(rowNum);
for (column = 1; column < numberOfColumns; column++) {
test = ((Number) row.get(column)).doubleValue();
if (test < minValue) {
minValue = test;
}
if (test > maxValue) {
maxValue = test;
}
}
}
}
fireDatasetChanged(); // Tell the listeners a new table has arrived.
}
catch (SQLException ex) {
System.err.println(ex);
ex.printStackTrace();
}
finally {
if (resultSet != null) {
try {
resultSet.close();
}
catch (Exception e) {
}
}
if (statement != null) {
try {
statement.close();
}
catch (Exception e) {
}
}
}
}
/**
* Returns the x-value for the specified series and item. The
* implementation is responsible for ensuring that the x-values are
* presented in ascending order.
*
* @param seriesIndex The series (zero-based index).
* @param itemIndex The item (zero-based index).
*
* @return The x-value
*
* @see XYDataset
*/
public Number getXValue(int seriesIndex, int itemIndex) {
Vector row = (Vector) rows.elementAt(itemIndex);
return (Number) row.elementAt(0);
}
/**
* Returns the y-value for the specified series and item.
*
* @param seriesIndex The series (zero-based index).
* @param itemIndex The item (zero-based index).
*
* @return The yValue value
*
* @see XYDataset
*/
public Number getYValue(int seriesIndex, int itemIndex) {
Vector row = (Vector) rows.elementAt(itemIndex);
return (Number) row.elementAt(seriesIndex + 1);
}
/**
* Returns the number of items in the specified series.
*
* @param seriesIndex The series (zero-based index).
*
* @return The itemCount value
*
* @see XYDataset
*/
public int getItemCount(int seriesIndex) {
return rows.size();
}
/**
* Returns the number of series in the dataset.
*
* @return The seriesCount value
*
* @see XYDataset
* @see Dataset
*/
public int getSeriesCount() {
return columnNames.length;
}
/**
* Returns the name of the specified series.
*
* @param seriesIndex The series (zero-based index).
*
* @return The seriesName value
*
* @see XYDataset
* @see Dataset
*/
public String getSeriesName(int seriesIndex) {
if ((seriesIndex < columnNames.length) && (columnNames[seriesIndex] != null)) {
return columnNames[seriesIndex];
}
else {
return "";
}
}
/**
* Returns the number of items that should be displayed in the legend.
*
* @return The legendItemCount value
*/
public int getLegendItemCount() {
return getSeriesCount();
}
/**
* Returns the legend item labels.
*
* @return The legend item labels.
*/
public String[] getLegendItemLabels() {
return columnNames;
}
/**
* Returns the minimum data value in the dataset's range.
*
* @return The minimum value.
*
* @see RangeInfo
*/
public Number getMinimumRangeValue() {
return new Double(minValue);
}
/**
* Returns the maximum data value in the dataset's range.
*
* @return The maximum value.
*
* @see RangeInfo
*/
public Number getMaximumRangeValue() {
return new Double(maxValue);
}
/**
* Close the database connection
*/
public void close() {
try {
resultSet.close();
}
catch (Exception e) {
System.err.println("JdbcXYDataset: swallowing exception.");
}
try {
statement.close();
}
catch (Exception e) {
System.err.println("JdbcXYDataset: swallowing exception.");
}
try {
connection.close();
}
catch (Exception e) {
System.err.println("JdbcXYDataset: swallowing exception.");
}
}
/**
* Returns the range of the values in this dataset's range (y-values).
*
* @return The range.
*/
public Range getValueRange() {
return new Range(minValue, maxValue);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -