zoukankan      html  css  js  c++  java
  • 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

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

    附录:

    小编推荐几个网页学习的链接:

    w3c菜鸟教程:http://www.w3cschool.cc/

    慕课网:http://www.imooc.com/

    Bootstrap中文网:http://www.bootcss.com/-----------------------------------------------------------------------------------------------------------------------------------------------

    PS:小编技术有限,如有不足,请指出,谢谢

  • 相关阅读:
    Javascript之数组遍历
    Javascript中的原型、原型链(十)
    Javascript中的对象(八)
    记一次包含iframe的需要滚动的元素不能滚动到底部的问题
    元素等比缩放解决方案
    元素高度自适应屏幕高度解决方案
    浏览器同源策略及规避方案
    Ansible环境搭建
    Ldap 从入门到放弃(二)
    Ldap 从入门到放弃(一)
  • 原文地址:https://www.cnblogs.com/boy1025/p/4114456.html
Copyright © 2011-2022 走看看