首页 > 代码库 > JSP_通过表格显示数据库的信息

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:<实体类的作用>

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

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

 1 package cn.edu.bzu.news.dao; 2  3 import java.sql.*; 4 import java.util.ArrayList; 5 import java.util.List; 6  7 import cn.edu.bzu.news.entity.FirstTitle; 8  9 public class FirstTitleOperation {10     //查询11     public List readFirstTitle(){12         List<FirstTitle> list=new ArrayList<FirstTitle>();13         Connection conn=null;14         PreparedStatement pstmt=null;15         ResultSet rs=null;16         17         try {18             Class.forName("com.mysql.jdbc.Driver");19         } catch (ClassNotFoundException e) {20             // TODO Auto-generated catch block21             e.printStackTrace();22         }23         try {24             conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","123456");25             String sql="select * from firsttitle where id>=?";26             pstmt=conn.prepareStatement(sql);27             pstmt.setInt(1, 1);28             rs=pstmt.executeQuery();29             while(rs.next()){30                 31                 int id=rs.getInt("id");32                 String titleName=rs.getString("titleName");33                 String creator=rs.getString("creator");34                 Date createTime=rs.getDate("createTime");    35                 FirstTitle ft=new FirstTitle(id,titleName,creator,createTime);36                 list.add(ft);                37             }38         } catch (SQLException e) {39             // TODO Auto-generated catch block40             e.printStackTrace();41         }finally{42             try{43                 if(rs!=null){44                     rs.close();45                 }46                 if(pstmt!=null){47                     pstmt.close();48                 }49                 if(conn!=null){50                     conn.close();51                 }52                 53                 54                 55             }catch(SQLException e){56                 e.printStackTrace();57             }58         }        59     return list;    60     }61     //测试查询功能,<可以省略>62     public static void main(String[] args) {63         FirstTitleOperation fto=new FirstTitleOperation();64         List<FirstTitle> list=fto.readFirstTitle();65         for(FirstTitle ft:list){66             System.out.println(ft.getTitleName());67             68         }69     }70     71 72 }

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:后续内容....waiting...

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

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@page import="cn.edu.bzu.news.dao.FirstTitleOperation,cn.edu.bzu.news.entity.FirstTitle"%> 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     <base href="http://www.mamicode.com/">12     13     <title>My JSP ‘showFirstTitle.jsp‘ starting page</title>14     15     <meta http-equiv="pragma" content="no-cache">16     <meta http-equiv="cache-control" content="no-cache">17     <meta http-equiv="expires" content="0">    18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">19     <meta http-equiv="description" content="This is my page">20     <!--21     <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css">22     -->23 24   </head>25   26   <body>27   <table border="1">28   <tr>29   <td>ID</td>30   <td>标题名</td>31   <td>创建者</td>32   <td>创建时间</td>33   </tr>34  35     <%36     FirstTitleOperation fto=new FirstTitleOperation();37         List<FirstTitle> list=fto.readFirstTitle();38         for(FirstTitle ft:list){%>39         40          <tr>41              <td><%= ft.getId()%></td>42              <td><%= ft.getTitleName()%></td>43              <td><%= ft.getCreator()%></td>44              <td><%= ft.getCreateTime()%></td>45          46          </tr>47         <%        }48     49      %>50       </table>51   </body>52 </html>

ps: <%%>小脚本的内容解释:通过FirstTitleOperation fto=new FirstTitleOperation();   创建对象,然后调用对象的方法,将其这些数据放在list这个集合中,用的时候

使用遍历的getId()......等来显示数据

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

ps:内容更新中.........

 

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