文档章节

JSP_通过表格显示数据库的信息

 月心寒
发布于 2016/11/18 10:20
字数 1409
阅读 15
收藏 0

JSP_通过表格显示数据库的信息

    在本篇文章中,小编将介绍在jsp页面中通过表格显示数据库的实现:下面我们以“新闻发布系统”中显示一级标题的信息为例进行讲述,在新闻发布系统中存在一二级标题,在后台可以对标题进行管理,可查询标题等信息

      【step one】

      1-1 建立数据库

        在jsp中,我们使用的是mysql数据库,对于此数据的优缺点本篇不予以讲述,首先建立news数据库,其数据库中表的信息为:

 

       eg:< id :1 ; name:娱乐; creator:ibbon;createTime:2014-11-21 22:17:43>

    【step two】  建立web项目(news)

    2-1:首先,我们在web项目的src文件夹写入链接数据库的相关的类,他们分别是:链接数据库的类,数据的实体类

-----------------------------------------------------------------------------------------------------------------------------------------------------

       2-1-1 : 数据库实体类,在此类中主要含有数据库的字段,<包:cn.edu.bzu.entity ;实体类:Title.java;> 

复制代码

1 package cn.news.jsp.entity;
 2 
 3 import java.sql.Date;
 4 
 5 public class Title {
    /**
     *下面这四个属性为数据库表中的四个属性
     */
 6     private int id;   
 7     private String name;
 8     private String creator;
 9     private Date createTime;
10     
11     public int getId() {
12         return id;
13     }
14     public void setId(int id) {
15         this.id = id;
16     }
17     public String getName() {
18         return name;
19     }
20     public void setName(String name) {
21         this.name = name;
22     }
23     public String getCreator() {
24         return creator;
25     }
26     public void setCreator(String creator) {
27         this.creator = creator;
28     }
29     public Date getCreateTime() {
30         return createTime;
31     }
32     public void setCreateTime(Date createTime) {
33         this.createTime = createTime;
34     }
35     public Title(int id, String name, String creator, Date createTime) {
36         super();
37         this.id = id;
38         this.name = name;
39         this.creator = creator;
40         this.createTime = createTime;
41     }
42     
43 }

复制代码

ps:<实体类的作用>

    /**
     *实体类的作用 
     *在JAVAWeb中,实体类里面的某一个类,相当于是数据库里的一张表,一个类里面的某个字段相当于表的列名
     *在实体里有getter和setter方法,getter是只读,setter是写入
     */

-----------------------------------------------------------------------------------------------------------------------------------------------------

          2-2-2 数据库操作类 :下面以对数据库的查询功能书写代码,<包:cn.edu.bzu.dao;类:TitleDAO.java>

复制代码

1 package cn.edu.bzu.dao;
 2 import java.sql.*;
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import cn.edu.bzu.entity.Title;
 7 
 8 public class TitleDAO {
 9     public List readFirstTitle(){
10         List<Title> list =new ArrayList<Title>();
11         Connection con=null;
12         PreparedStatement psmt=null;
13         ResultSet rs=null;
14         try {
15             Class.forName("com.mysql.jdbc.Driver");
16         } catch (ClassNotFoundException e) {
17             e.printStackTrace();
18         }
19         
20         try {
21             con=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","baby123");
22             String sql="select * from title";
23             psmt=con.prepareStatement(sql);
24             rs=psmt.executeQuery();
25             
26             while(rs.next())
27             {
28                 int id=rs.getInt("id");
29                 String name=rs.getString("name");
30                 String creator=rs.getString("creator");
31                 Date createTime=rs.getDate("createTime");
32                 Title tl=new Title(id, name, creator, createTime);
33                 list.add(tl);
34             }
35             
36         } catch (SQLException e) {
37             e.printStackTrace();
38         }finally
39         {
40             try {
41                 if(rs!=null)
42                 {
43                     rs.close();
44                 }
45                 if(psmt!=null)
46                 {
47                     psmt.close();
48                 }
49                 if(con!=null)
50                 {
51                     con.close();
52                 }
53             } catch (SQLException e) {
54                 e.printStackTrace();
55             }
56         }
57         return list;
58     }
59     
60 }

复制代码

 

ps:现在分析一下上述代码,

  one:创建方法(public List readFirstTitle()),之所以选择返回值是List是因为一个标题含有id,name,creator,cteateTime信息,这些信息存在集合中,便于管理,操作

  two:创建变量,链接数据库,在这个web project使用的是JDBC技术链接的数据库,这技术需要一类三接口<DriverManager类,Connection接口,Statement接口,ResultSet接口>

 

                ps:与数据库建立链接的步骤:1.注册数据库驱动;2.获取数据库连接;3.获取statement对象;4.关闭资源;

具体的实现步骤,请看上述代码

    three:在数据库中读取的信息需要使用List接口,以实现对数据库的一列信息进行封装起来进行来进行后续的使用,就好比:在桌子上有很多的糖,装糖的瓶子,装瓶子的箱子-------->>>>>就好比之前的属性为糖,好几个属性为一个瓶子,好几个瓶子放在箱子中(List)

        Four:下面进行细节讲解:

    public List readFirstTitle()方法对每一行的数据进行封装, 通过为实体类建立对象(entity),调用他的构造方法,通过构造方法的方式进行复制,然后把通过赋值完成的数据加入list集合中,这样一行的数据就进行封装完成,通过while()循环,从而实现对数据的遍历,进而实现对多行数据的存储,但是在此之前需要创建list对象,并且导入list对象的相关类-------------List<Title> list =new ArrayList<Title>();

----------------------------------------------------------------------------------------------------------------------------------------------------------

2-2-3   在web页面中显示数据库信息<在webroot下建立titleList.jsp,使用TitleDao.java中的查询方法得到所有的记录,然后用表格在页面显示>其具体的代码:

复制代码

1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
 2 <%@page import="cn.edu.bzu.dao.TitleDAO,cn.edu.bzu.entity.Title"%>
 3 <%
 4 String path = request.getContextPath();
 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 6 %>
 7 
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10   <head>
11     <title>Test-newsTitle</title>
12   </head>
13   
14   <body>
15   <table border="1">
16       <tr>
17           <td>id</td>
18           <td>name</td>
19           <td>creator</td>
20           <td>createTime</td>
21       </tr>
22         <%
23            TitleDAO dao=new TitleDAO();
24            List<Title> list =dao.readFirstTitle();    
25            for(Title tl:list)
26            {%>
27           <tr>
28               <td><%=tl.getId() %></td>
29               <td><%=tl.getName() %></td>
30               <td><%=tl.getCreator() %>></td>
31               <td><%=tl.getCreateTime() %></td>
32           </tr>
33             <%}
34        %>
35   </table>
36   </body>
37 </html>

复制代码

 

ps: <%%>小脚本的内容解释:

1.通过TitleDAO dao=new TitleDAO();   创建对象

 2.List <Title> list =dao.readFIrstTitle();  接口List创建list对象,然后通过对象dao调用TitleDAO中的readFirstTitle()方法,从而把返回的list赋予给list

3.for-each()进行数据的遍历

4.遍历的需要放在行(<tr></tr>)标签外面,这样的话才能把数据进行行存储,由于使用了遍历,所以说明把数据库中的Title表中的数据全部以表格的形式输出

5.具体美化,敬请学习html+css

本文转载自:

粉丝 0
博文 11
码字总数 0
作品 0
成都
私信 提问
Servlet doGet和doPost方法

首先你要明确servlet的生命周期和HTTP协议. Serlvet接口只定义了一个服务方法就是service,而HttpServlet类实现了该方法并且要求调用下列的方法之一: doGet:处理GET请求 doPost:处理POST请...

xiahuawuyu
2012/08/02
1K
0
jsp+servlet动态表格显示数据库内容问题

小弟写了个对数据库进行查询的小程序,bean+dao+service+servlet+jsp,jsp动态表格显示从数据库中查询的数据,到了for循环的地方老是报错,代码如下: 错误如下:Servlet.service() for ser...

只是漫延
2014/05/15
3.7K
1
Apache TomEE 入门指南

介绍 Apache TomEE(发音同“tommy”)是一个新的JavaEE服务器,由Apache软件基金会开发,你大概能够从它的名字猜到,它是从Tomcat而来,同时加入的JavaEE的特征:TomEE=Tomcat+java EE。因此...

oschina
2013/03/19
11.3K
1
Java Servlet API(主要的方法)

Java Servlet 开发工具(JSDK)提供了多个软件包,在编写Servlet时需要用到这些软件包,下面主要介绍HTTP Servlet应用编程接口。 HttpServlet类包含init()、destroy()、Service()等方法...

晨曦之光
2012/05/16
410
0
Servlet中doGet和doPost等方法

Serlvet接口只定义了一个服务方法就是service,而HttpServlet类实现了该方法并且要求调用下列的方法之一: doGet:处理GET请求 doPost:处理POST请求 当发出客户端请求的时候,调用service 方...

yifon
2014/04/19
490
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部