jav画折线图并保存到mysql里
时间: 2023-12-21 14:06:42 浏览: 30
首先,你可以使用Java的开源图表库JFreeChart来绘制折线图。以下是一个简单的示例代码:
```java
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class LineChart {
public static void main(String[] args) throws SQLException, IOException {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// 创建表
String createSql = "CREATE TABLE IF NOT EXISTS chart_data ("
+ "id INT(11) NOT NULL AUTO_INCREMENT,"
+ "xvalue VARCHAR(50) NOT NULL,"
+ "yvalue DOUBLE NOT NULL,"
+ "PRIMARY KEY (id))";
PreparedStatement createStmt = conn.prepareStatement(createSql);
createStmt.executeUpdate();
// 准备数据
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Category 1");
dataset.addValue(2.0, "Series 1", "Category 2");
dataset.addValue(3.0, "Series 1", "Category 3");
dataset.addValue(4.0, "Series 1", "Category 4");
dataset.addValue(5.0, "Series 1", "Category 5");
// 创建图表
JFreeChart chart = ChartFactory.createLineChart(
"Line Chart Demo", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
// 保存图表为图片文件
String filename = "linechart_" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".png";
File file = new File(filename);
ChartUtilities.saveChartAsPNG(file, chart, 800, 600);
System.out.println("Saved chart to " + filename);
// 保存数据到数据库
PreparedStatement insertStmt = conn.prepareStatement("INSERT INTO chart_data (xvalue, yvalue) VALUES (?, ?)");
for (int i = 0; i < dataset.getColumnCount(); i++) {
String category = (String) dataset.getColumnKey(i);
Number value = dataset.getValue(0, i);
insertStmt.setString(1, category);
insertStmt.setDouble(2, value.doubleValue());
insertStmt.executeUpdate();
}
System.out.println("Saved data to database");
// 关闭连接
insertStmt.close();
createStmt.close();
conn.close();
}
}
```
这段代码将生成一张折线图,并将数据保存到名为“test”的MySQL数据库中的“chart_data”表中。
你需要在本地或者服务器上安装MySQL,然后创建一个名为“test”的数据库,并在其中创建一个名为“chart_data”的表。
此外,你需要将JFreeChart库添加到你的Java项目中。你可以在这里下载JFreeChart:http://www.jfree.org/jfreechart/download.html
希望这能帮到你。