當前位置:首頁 » 數據倉庫 » 資料庫動態表設計
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫動態表設計

發布時間: 2023-03-10 08:57:12

『壹』 資料庫動態添加欄位

用SQL語句添加刪除修改欄位、一些表與欄位的基本操作、資料庫備份等。
在資料庫表中,我們可以在表設計中添加欄位並設置數據類型也可以通過代碼,在程序中添加自動編號欄位。
部分選擇型欄位的選項,來自於資料庫這里得考慮如何更簡單的對接,和處理token或者cookie。

『貳』 怎麼從資料庫中調出數據並生成動態圖表

JSP頁面中嵌入動態圖表的兩種方法 :在JSP頁面中插入Applet小程序 ;通過JavaBean動態生成圖像。
JSP是一種廣泛應用的網頁設計技術 ,它是一種HTML和Java腳本混合的編程技術 ,它結合了HTML的靜態特性和Java語言的動態能力 ,因此用它進行動態網頁設計非常方便。在進行圖像處理時 ,一般處理靜態圖片非常容易 ,但是 ,在實際應用中常常需要動態地在網頁中生成二維的圖形.
基於JFreeChart開發的一個時序圖的繪制。代碼如下:
實例中createDataset()方法用於創建數據集合對象。時序圖的數據集合與其他數據集合不同,它需要添加一個時間段內的所有數據,通常採用TimeSeries類進行添加。該實例中通過Math類的random()方法進行隨機生成。
import java.awt.*;
import java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import
java.io.DataInputStream;
import java.io.FileOutputStream;
import
java.io.IOException;
import java.net.URL;
import
java.net.URLConnection;
import java.text.DateFormat;
import
java.text.ParseException;
import java.text.SimpleDateFormat;
import
java.util.Calendar;
import java.util.Date;
import java.util.Random;
import javax.swing.JApplet;
import javax.swing.Timer;
import org.jfree.chart.*;
import
org.jfree.chart.annotations.CategoryTextAnnotation;
import
org.jfree.chart.axis.CategoryAnchor;
import
org.jfree.chart.axis.CategoryAxis;
import
org.jfree.chart.axis.CategoryLabelPositions;
import
org.jfree.chart.axis.DateAxis;
import
org.jfree.chart.axis.DateTickUnit;
import
org.jfree.chart.axis.DateTickUnitType;
import
org.jfree.chart.axis.ValueAxis;
import
org.jfree.chart.labels.;
import
org.jfree.chart.plot.CategoryPlot;
import
org.jfree.chart.plot.PlotOrientation;
import
org.jfree.chart.plot.XYPlot;
import
org.jfree.chart.renderer.category.BarRenderer;
import
org.jfree.chart.title.TextTitle;
import
org.jfree.data.category.CategoryDataset;
import
org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.chart.axis.NumberAxis;
import
org.jfree.data.category.DefaultCategoryDataset;
import
org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import
org.jfree.data.gantt.TaskSeriesCollection;
import
org.jfree.data.time.Day;
import org.jfree.data.time.Second;
import
org.jfree.data.time.TimeSeries;
import
org.jfree.data.time.TimeSeriesCollection;
import
org.jfree.data.xy.XYDataset;
public class shixutu extends JApplet {

//PLOT_FONT是一靜態的字體常量對象,使用此對象可以避免反復用到的字體對象被多次創建

private static final Font PLOT_FONT = new Font("黑體", Font.ITALIC ,
18);
JFreeChart chart;
//創建數據動態更新的監聽
class DataGenerator extends Timer
implements ActionListener {

private static final long serialVersionUID =
3977867288743720504L;
String
equID;
//設備ID號
int
totalTask;
//任務數
String[][]
strTask;
//任務情況
public void
actionPerformed(ActionEvent actionevent) {
addTotalObservation();
} DataGenerator()
{

super(1000,
null);

addActionListener(this);

System.out.println("super");

}
}

//將更新的數據添加到chart中
private void addTotalObservation()
{

System.out.println("addTotalObservation");

//設置新的數據集

chart.getXYPlot().setDataset(createDataset());

//通知Jfreechart
數據發生了改變,重新繪制柱狀圖
if
(chart != null)
{

chart.fireChartChanged();

}
}
private static void
processChart(JFreeChart chart)
{

//設置標題字體

chart.getTitle().setFont(new Font("隸書", Font.BOLD,
26));

//設置背景色

chart.setBackgroundPaint(new
Color(252,175,134));

XYPlot plot = chart.getXYPlot();
//獲取圖表的繪制屬性

plot.setDomainGridlinesVisible(false);
//設置網格不顯示

//獲取時間軸對象

DateAxis dateAxis = (DateAxis)
plot.getDomainAxis();

dateAxis.setLabelFont(PLOT_FONT);
//設置時間軸字體

//設置時間軸標尺值字體

dateAxis.setTickLabelFont(new
Font("宋體",Font.PLAIN,12));

dateAxis.setLowerMargin(0.0);
//設置時間軸上顯示的最小值

//獲取數據軸對象

ValueAxis valueAxis =
plot.getRangeAxis();

valueAxis.setLabelFont(PLOT_FONT);
//設置數據字體

DateFormat format = new SimpleDateFormat("mm分ss秒");
//創建日期格式對象

//創建DateTickUnit對象

DateTickUnit dtu = new
DateTickUnit(DateTickUnitType.SECOND,30,format);

dateAxis.setTickUnit(dtu);
//設置日期軸的日期標簽 } //將結果輸出在文件中
private static
void writeChartAsImage(JFreeChart chart)
{

FileOutputStream fos_jpg =
null;

try
{

fos_jpg = new
FileOutputStream("D:\\test\\shixutu.jpg");

ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300,
null);

} catch (Exception e)
{

e.printStackTrace();

} finally
{

try
{

fos_jpg.close();

} catch (Exception e)
{

}

}

}

//創建數據集合對象

public static XYDataset createDataset()
{

//實例化TimeSeries對象

TimeSeries timeseries = new
TimeSeries("Data");

Second second = new Second();
//實例化Day

double d =
50D;

//添加一年365天的數據

for (int i = 0; i < 500; i++)
{

d = d + (Math.random() - 0.5) * 10;
//創建隨機數據

timeseries.second(day, d);
//向數據集合中添加數據

second = (Second)
second.next();

}
TimeSeriesCollection timeSeriesCollection =
new
TimeSeriesCollection(timeseries);

//返回數據集合對象

return timeSeriesCollection; } //Applet程序初始化
public void init()
{
// 1.
得到數據
XYDataset dataset =
createDataset();

// 2.
構造chart

chart =
ChartFactory.createTimeSeriesChart(

"時序圖示範", //
圖表標題

"時間", //
目錄軸的顯示標簽--橫軸

"數值", //
數值軸的顯示標簽--縱軸

dataset, //
數據集

false,

false, //
是否生成工具

false //
是否生成URL鏈接

);

// 3.
處理chart中文顯示問題

processChart(chart);

// 4.
chart輸出圖片

//writeChartAsImage(chart);

// 5. chart
以swing形式輸出

//6.使用applet輸出

ChartPanel chartPanel = new
ChartPanel(chart);

chartPanel.setPreferredSize(new
java.awt.Dimension(800,500));

getContentPane().add(chartPanel); (new
DataGenerator()).start();

}

public void
paint(Graphics g)
{
if
(chart != null)
{

chart.draw((Graphics2D) g,
getBounds());

}
}

public void destroy() {
}
}