jsp页面 jfreechart调用数据库中的数据并以柱状图的形式显现出来

jsp页面 jfreechart调用数据库中的数据并以柱状图的形式显现出来,第1张

我把核心代码给你,你一定要看懂这个代码,否则还是写不出的,注释我都标的很详细了。前几行是我的方法,作用的返回所有课程,你知道意思就行,因为不一定要这样写,你采用你的方式遍历一边数据库表项并循环插入到dataset就行,其实很简单的~

<%

CourseDAO dao = new CourseDAO();//dao类

ArrayList<Courseinfo> list = (ArrayList<Courseinfo>) daoallCourses();//这个方法是返回所有的课程

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

for (int i = 0; i < listsize(); i++) { //遍历所有课程,把内容依次添加到dataset里

datasetaddValue(listget(i)getCoursenum(), "totalnum", listget(i)getCoursename());

}

JFreeChart freechart = ChartFactorycreateBarChart3D("选课信息统计图",

"课程名称", "选课人数", dataset, PlotOrientationVERTICAL, true,true, true);

freechartsetBackgroundPaint(ColorLIGHT_GRAY);

freechartgetTitle()setPaint(ColorBLUE);

freechartgetLegend()setVisible(true);

Font font = new Font("SimSun", 10, 20);

TextTitle txtTitle = null;

txtTitle = freechartgetTitle();

txtTitlesetFont(font);

CategoryPlot plot = freechartgetCategoryPlot();

CategoryAxis domainAxis = plotgetDomainAxis();

//设置距离左端距离

domainAxissetLowerMargin(002);

//设置距离右端距离

domainAxissetUpperMargin(002);

domainAxissetLabelFont(new Font("黑体", FontPLAIN, 14));

//水平底部标题

domainAxissetTickLabelFont(new Font("宋体", FontPLAIN, 14));

//垂直标题

ValueAxis rangeAxis = plotgetRangeAxis();//获取柱状

rangeAxissetLabelFont(new Font("黑体", FontPLAIN, 14));

plotsetDomainAxis(domainAxis);

//2

rangeAxissetUpperMargin(008);

//设置最低的一个柱与底端的距离

rangeAxissetLowerMargin(024);

plotsetRangeAxis(rangeAxis);

//3

BarRenderer3D bar = new BarRenderer3D();

barsetBaseOutlinePaint(ColorBLACK);

//设置 Wall 的颜色

barsetWallPaint(ColordarkGray);

//设置每种代表的柱的颜色

barsetSeriesPaint(0, new Color(255, 0, 0));

barsetSeriesPaint(1, new Color(0, 255, 0));

barsetSeriesPaint(2, ColorBLUE);

//设置每种代表的柱的 Outline 颜色

barsetSeriesOutlinePaint(0, ColorBLACK);

barsetSeriesOutlinePaint(1, ColorBLACK);

barsetSeriesOutlinePaint(2, ColorBLACK);

//设置平行柱的之间距离

barsetItemMargin(002);

//显示每个柱的数值,并修改该数值的字体属性

barsetItemLabelGenerator(new StandardCategoryItemLabelGenerator());

barsetDrawBarOutline(true);

barsetIncludeBaseInRange(true);

barsetItemLabelFont(new Font("华文新魏", FontPLAIN, 8));

barsetItemLabelsVisible(true);

plotsetRenderer(bar);

BarRenderer3D renderer = (BarRenderer3D) plotgetRenderer();

renderersetWallPaint(ColorPINK);

plotsetForegroundAlpha(100f);

//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题

renderersetBasePositiveItemLabelPosition(new ItemLabelPosition(

ItemLabelAnchorOUTSIDE12, TextAnchorBASELINE_LEFT));

renderersetItemLabelAnchorOffset(10D);

GradientPaint gradientpaint = new GradientPaint(00F, 00F,

Colorblue, 00F, 00F, new Color(0, 0, 64)); //设定特定颜色

GradientPaint gradientpaint1 = new GradientPaint(00F, 00F,

Colorcyan, 00F, 00F, new Color(0, 64, 0));

renderersetSeriesPaint(0, gradientpaint);

renderersetSeriesPaint(1, gradientpaint1);

//设置柱的 Outline 颜色

renderersetSeriesOutlinePaint(0, ColorBLACK);

renderersetSeriesOutlinePaint(1, ColorBLACK);

//设置每个category所包含的平行柱的之间距离

renderersetItemMargin(01);

//显示每个柱的数值,并修改该数值的字体属性

renderer

setItemLabelGenerator(new StandardCategoryItemLabelGenerator());

String filename = ServletUtilitiessaveChartAsPNG(freechart, 600,

400, null, session);

String grapUrl = requestgetContextPath()

+ "/DisplayChartfilename=" + filename;

%>

<center>

<img src="<%=grapUrl%>" width="700" height="500" border="0"

usemap="#<%=filename%>">

</center>

上面的给出了jsp内嵌java的最初模式,现在一般是三层结构了即MVC结构,就这个例子我来给你解释下是怎么做的,java对连接数据库提供了统一的接口,各个数据库厂商根据提供的接口规范开发自己的连接方法顺序如下:1、用ClassforName()方法加载驱动:ClassforName("commicrosoftjdbcsqlserverSQLServerDriver")newInstance(); 黑体部分为数据库厂商自己开发的驱动。2、定义好连接数据库的url地址,连接串String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";黑体部分为固定写法不用理会。回到你最初的问题,如何创建数据库,这里你可以去baidu下每个数据库创建的方法,一般数据库安装的时候都有默认的数据库名,和对应的系统管理员工号和密码,DatabaseName=pubs这里说明sql serv 2000中建立了一个名字叫pubs的数据库jdbc:microsoft:sqlserver://localhost:1433固定写法唯一不同的是1433端口号,可能你在安装sql serv 2000的时候改变了该端口号为1500那么这里就应该为jdbc:microsoft:sqlserver://localhost:15003、定义好DatabaseName=pubs的登录用户名和密码 String user="sa";用户名

String password="";密码4、创建Connection对象,通过调用DriverManagergetConnection方法获得。 Connection conn= DriverManagergetConnection(url,user,password);黑体部分就是你定义好的连接串,用户名,密码,不可改变顺序。到这里为止数据库就连接上了,但是连接好了数据库还要做点什么,比如打印出来,接下看。5、通过获得的Connection对象conn创建Statement 对象stmtStatement stmt=conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_UPDATABLE);黑体部分是定义ResultSet的一些属性的,具体含义可以参考JDK的api。6、定义好你准备取得数据的sql语句,比如下面 select from test说明想从test表中取得所有的数据,关于sql语句可以去查找相关数据库资料。 String sql="select from test";定义好语句后,就用上一步创建好的Statement 对象stmt来执行这个sql语句,并返回一个ResultSet对象。

  ResultSet rs=stmtexecuteQuery(sql);执行完这步后rs中已经取得了test表所有的数据,那么接下来要展现在网页上。7、rsnext()对你取得的记录集做一个循环直到没有值为止,rsgetString(1)代表你test表中的第一个字段rsgetString(2)代表你test中的第二个字段,如果还有更多字段可以继续rsgetString(3)rsgetString(N) while(rsnext()) {%>

您的第一个字段内容为:<%=rsgetString(1)%>

您的第二个字段内容为:<%=rsgetString(2)%>

<%}%>8、当所有数据展现完毕,调用close()方法将所有资源关闭。 rsclose();

stmtclose();

connclose();回顾下大致过程:加载驱动 ClassforName();定义好相关的数据,调用DriverManagergetConnection(driver,user,password)获得一个数据库连接conn通过conn创建Statement对象stmt,conncreateStatement();通过stmt执行定义好的sql语句获得数据集ResultSet rs=stmtexecuteQuery(“select from test”);通过rsnext()方法循环遍历数据集的数据,通过rsgetString(1)获得第一条数据的第一个字段内容,这里要注意的是getString是对应数据库是字符类型,如果test表的第一个字段不是字符类型则用rsgetInt(1)获得。展现完毕后关闭所有资源conn stmt rs close方法。

创建数据库

选择开始菜单中→程序→Management SQL Server 2008→SQL Server Management Studio命令,打开SQL Server Management Studio窗口,并使用Windows或 SQL Server身份验证建立连接。

在对象资源管理器窗口中展开服务器,然后选择数据库节点

右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。

执行上述 *** 作后,会d出新建数据库对话框。在对话框、左侧有3个选项,分别是常规、选项和文件组。完成这三个选项中的设置会后,就完成了数据库的创建工作,

在数据库名称文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

在所有者文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用使用全文索引复选框。

在数据库文件列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的添加、删除按钮添加或删除数据库文件。

切换到选项页、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

切换到文件组页,在这里可以添加或删除文件组。

完成以上 *** 作后,单击确定按钮关闭新建数据库对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再对象资源管理器窗口看到。

最简单的JSP页面中的数据库 *** 作方法:

<%@ page

language="java"

contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"

%>

<%@page import="javasql"%>

<center>

<H1> <font color="blue" size="12">管理中心</font></H1>

<HR />

<table width="80%" border="1">

<tr>

<th>ID</th>

<th>书名</th>

<th>作者</th>

<th>价格</th>

<th>删除</th>

</tr>

<%

// 数据库的名字

String dbName = "zap";

// 登录数据库的用户名

String username = "sa";

// 登录数据库的密码

String password = "123";

// 数据库的IP地址,本机可以用 localhost 或者 127001

String host = "127001";

// 数据库的端口,一般不会修改,默认为1433

int port = 1433;

String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName + ";user=" + username

+ ";password=" + password;

//

//声明需要使用的资源

// 数据库连接,记得用完了一定要关闭

Connection con = null;

// Statement 记得用完了一定要关闭

Statement stmt = null;

// 结果集,记得用完了一定要关闭

ResultSet rs = null;

try {

// 注册驱动

ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");

// 获得一个数据库连接

con = DriverManagergetConnection(connectionUrl);

String SQL = "SELECT from note";

// 创建查询

stmt = concreateStatement();

// 执行查询,拿到结果集

rs = stmtexecuteQuery(SQL);

while (rsnext()) {

%>

<tr>

<td>

<%=rsgetInt(1)%>

</td>

<td>

<a href="prepareupdateID=<%=rsgetInt("ID")%>" target="_blank"><%=rsgetString(2)%></a>

</td>

<td>

<%=rsgetString(3)%>

</td>

<td>

<%=rsgetString(4)%>

</td>

<td>

<a href="deleteID=<%=rsgetInt("ID")%>" target="_blank">删除</a>

</td>

</tr>

<%

}

} catch (Exception e) {

// 捕获并显示异常

eprintStackTrace();

} finally {

// 关闭我们使用过的资源

if (rs != null)

try {

rsclose();

} catch (Exception e) {}

if (stmt != null)

try {

stmtclose();

} catch (Exception e) {}

if (con != null)

try {

conclose();

} catch (Exception e) {}

}

%>

</table>

<a href="insertjsp">添加新纪录</a>

</center>

<html>

<head>

<title>JSP中使用 Java Bean的测试</title>

</head>

<body>

<jsp:useBean id="test" class="SimleBean" />

<jsp:setProperty name="test" property="message" value="Hello JSP"/>

<p>消息:

<jsp:getProperty name="test" property="message" />

</body>

</html>

解释:

<jsp:useBean id="test" class="SimleBean" />:表示定义一个java bean的实例,实例的名称是test,类的名称是SimleBean。

<jsp:setProperty name="test" property="message" value="Hello JSP"/>:表示设置实例test的属性message,其值是"Hello JSP"。

<jsp:getProperty name="test" property="message" />:表示在页面中输出实例test的属性message的值。

· testjsp文件中用到的java bean 的代码SimpleBeanjava如下:

package test;

//注意这里好像一定要有包名,没有包我试过不行,SimpleBeanclass连同父文件夹放在WEB-INF\classes\下面

public class SimpleBean

{

private String message;

public String getMessage()

{

return message;

}

public void setMessage(String message)

{

thismessage = message;

}

}

1、 <jsp:useBean>

javaBean是特殊类型的java类,它与普通java类相比主要区别是包含了两种特殊的方法:set…(设置属性的方法)、get…(取属性值的方法)。

<jsp:useBean>动作用来查找或实例化一个jsp页面使用的JavaBeans组件。

在程序中可把逻辑控制、数据库 *** 作放在javabeans组件中,然后在jsp文件中调用它,这样可增加程序的清晰度及程序的可重用性。

· 语法如下:

<jsp:useBean id="beanInstanceName"

scope="page | request | session | application"

class="packageclaaa"

type="packageclaaa"

other elements

/>

· 属性:

1) id="beanInstanceName"

用来绑定Bean实例的变量。

2) class|type="packageclaaa"

表明该bean具体是对哪个类的实例化。

3) scope="page | request | session | application"

表示该bean的有效范围。

Page:实例的有效范围是当前页面。

Request:实例的有效范围是一个单独客户请求的生命周期内。

Session:实例的有效范围是整个用户会话的生命周期内。

Application:实例的有效范围是应用的生命周期内。

2、 <jsp:setProperty>

该动作的含义是使用bean中相应的set()方法设置一个或多个属性的值,值的来源是通过value属性明确给出,或者利用request对象中相应的参数。

假设某个bean有一个string类型的可被JSP文件使用的属性myProperty,则它必须有一个public方法setMyProperty(string value),<jsp:setProperty>动作使用的就是该方法。

· 语法如下:

<jsp:setProperty name="beanInstanceName"

property="" | property ="propertyName"

value="具体的值"

/>

· 属性:

1) name="beanInstanceName"

这个属性是必须的,用来表明对哪个bean实例执行下面的动作,这个值和动作<jsp:useBean>中定义的id必须对应起来,包括大小写都必须一致。

2) property="" | property ="propertyName"

这个属性是必须的,用来表示要设置哪个属性。如果property的值是"",表示用户在可见的JSP页面中输入的全部值,存储在匹配的bean属性中。匹配的方法是:bean的属性名称必须与输入框的名字相同。

3) value="具体的值"

它用来指定bean的属性的值。

3、 <jsp:getProperty>

这个动作提取指定bean属性的值,转换成字符串,然后输出。该动作实际是调用了bean的get()方法。

按上文提到的某个bean有一个string类型的可被JSP文件使用的属性myProperty,它必须有一个返回类型为string的public方法getMyProperty()。<jsp:getProperty>使用的就是这个方法。

语法如下:

<jsp:getProperty name="beanInstanceName" property="propertyName"/>

· 属性:

1) name="beanInstanceName"

这个属性是必须的,用来表明对哪个bean实例执行下面的动作,这个值和动作<jsp:useBean>中定义的id必须对应起来,包括大小写都必须一致。

2) property="" | property ="propertyName"

这个属性是必须的,用来表示要获取哪个属性。

以上就是关于jsp页面 jfreechart调用数据库中的数据并以柱状图的形式显现出来全部的内容,包括:jsp页面 jfreechart调用数据库中的数据并以柱状图的形式显现出来、jsp连接数据库方法(详细的)、求一个,jsp页面应用 ajax 通过 server 调用 数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9415182.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存