博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP_通过表格显示数据库的信息
阅读量:5807 次
发布时间:2019-06-18

本文共 6013 字,大约阅读时间需要 20 分钟。

hot3.png

    在本篇文章中,小编将介绍在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 list =new ArrayList();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         }finally39         {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  9 10   11     Test-newsTitle12   13   14   15    list =dao.readFirstTitle();    25            for(Title tl:list)26            {%>27           
16
17
18
19
20
21
22 <%23 TitleDAO dao=new TitleDAO();24 List
28
29
30
31
32
33 <%}34 %>35
id name creator createTime
<%=tl.getId() %> <%=tl.getName() %> <%=tl.getCreator() %>> <%=tl.getCreateTime() %>
36 37

复制代码

 

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

转载于:https://my.oschina.net/u/3013798/blog/790156

你可能感兴趣的文章
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>
使用第三方类、库需要注意的正则类RegexKitLite的使用
查看>>
iOS \U7ea2 乱码 转换
查看>>
FCN图像分割
查看>>
ios xmpp demo
查看>>
设计模式之-工厂模式、构造函数模式
查看>>
python matplotlib 中文显示参数设置
查看>>
数据库事务隔离级别
查看>>
os模块大全详情
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
从内积的观点来看线性方程组
查看>>
kali linux 更新问题
查看>>
HDU1576 A/B【扩展欧几里得算法】
查看>>
廖雪峰javascript教程学习记录
查看>>
WebApi系列~目录
查看>>
限制CheckBoxList控件只能单选
查看>>
Java访问文件夹中文件的递归遍历代码Demo
查看>>
项目笔记:测试类的编写
查看>>
如何迅速分析出系统CPU的瓶颈在哪里?
查看>>